{"version":3,"sources":["webpack:///src/modules/business-sign-up/components/sign-up-button.tsx?37a3","webpack:///src/modules/business-sign-up/components/sign-up-error.tsx?fbb9","webpack:///src/modules/business-sign-up/components/sign-up-input.tsx?4011","webpack:///src/modules/business-sign-up/components/sign-up-label.tsx?2025","webpack:///src/modules/business-sign-up/business-sign-up.tsx?df21","webpack:///src/modules/fabrikam/views/reviews-list.view.tsx?39a2","webpack:///./src/themes/farmlandstheme/views/product-specification.view.tsx?5658","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?e178","webpack:///src/modules/iframe/iframe.tsx?d14a","webpack:///./src/modules/farmlands-carousel-content-block/components/links.tsx?d17b","webpack:///./src/modules/farmlands-carousel-content-block/farmlands-carousel-content-block.props.autogenerated.ts?73bc","webpack:///./src/modules/farmlands-carousel-content-block/farmlands-carousel-content-block.tsx?1787","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/farmlandstheme/views/ratings-histogram.view.tsx?77e3","webpack:///./src/modules/farmlands-account-generic-tile/farmlands-account-generic-tile.view.tsx?e0d3","webpack:///./src/modules/farmlands-cookie-compliance/farmlands-cookie-compliance.view.tsx?631e","webpack:///./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?044a","webpack:///./src/modules/farmlands-carousel-content-block/farmlands-carousel-content-block.view.tsx?4bc5","webpack:///./src/modules/farmlands-account-address-tile/components/farmlands-account-address-tile-description.tsx?5d28","webpack:///./src/modules/farmlands-account-address-tile/components/farmlands-account-address-tile-links.tsx?efce","webpack:///./src/modules/farmlands-account-address-tile/farmlands-account-address-tile.tsx?b745","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/farmlands-account-address-tile/farmlands-account-address-tile.view.tsx?c6d0","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/farmlands-product-description/farmlands-product-description.view.tsx?b278","webpack:///src/modules/fabrikam/views/ratings-histogram.view.tsx?96ae","webpack:///./src/modules/farmlands-cookie-compliance/components/accept-button.tsx?af1a","webpack:///./src/modules/farmlands-cookie-compliance/components/links.tsx?637c","webpack:///./src/modules/farmlands-cookie-compliance/farmlands-cookie-compliance.tsx?050c","webpack:///src/modules/iframe/iframe.view.tsx?dd86","webpack:///src/modules/account-profile-edit/components/account-profile-edit-label.tsx?505c","webpack:///src/modules/checkout-express-payment-container/checkout-express-payment-container.view.tsx?3d5f","webpack:///src/modules/tile-list/tile-list.view.tsx?d2bd","webpack:///src/modules/business-sign-up/business-sign-up.view.tsx?578b","webpack:///./src/modules/farmlands-delivery-options/farmlands-delivery-options.view.tsx?f71a","webpack:///src/modules/business-partners/business-partners.view.tsx?677a","webpack:///src/modules/account-profile-edit/components/account-profile-edit-error.tsx?a0b2","webpack:///./src/modules/farmlands-breadcrumb/components/link.tsx?3d3b","webpack:///./src/modules/farmlands-breadcrumb/components/separator.tsx?8675","webpack:///./src/modules/farmlands-breadcrumb/farmlands-breadcrumb.tsx?87fc","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?ed3f","webpack:///./src/modules/farmlands-delivery-options/components/links.tsx?5af3","webpack:///./src/modules/farmlands-delivery-options/farmlands-delivery-options.tsx?9f39","webpack:///src/modules/account-profile-edit/account-profile-edit.view.tsx?72b7","webpack:///./src/themes/farmlandstheme/views/reviews-list.view.tsx?75e3","webpack:///./src/modules/farmlands-product-description/farmlands-product-description.tsx?2713","webpack:///./src/modules/farmlands-account-generic-tile/components/farmlands-account-generic-tile-links.tsx?de1b","webpack:///./src/modules/farmlands-account-generic-tile/farmlands-account-generic-tile.tsx?e77c","webpack:///./src/modules/farmlands-promotion-block/farmlands-promotion-block.view.tsx?47c4","webpack:///src/modules/checkout-express-payment-container/checkout-express-payment-container.tsx?28fd","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/cookie-compliance/cookie-compliance.view.tsx?b30b","webpack:///src/modules/product-comparison-button/product-comparison-button.tsx?934c","webpack:///src/modules/business-partners/components/search-bar.tsx?cefc","webpack:///src/modules/business-partners/components/data-grid.tsx?933a","webpack:///src/modules/business-partners/components/business-partner-users-table.tsx?5b50","webpack:///src/modules/business-partners/components/business-partners-table.tsx?108c","webpack:///src/modules/business-partners/business-partners.tsx?9aa8","webpack:///src/common/waiting.tsx?8365","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/farmlands-promotion-block/components/button.tsx?f14d","webpack:///./src/modules/farmlands-promotion-block/farmlands-promotion-block.props.autogenerated.ts?9dcb","webpack:///./src/modules/farmlands-promotion-block/farmlands-promotion-block.tsx?c84a","webpack:///./src/common/method/functions.ts?e410","webpack:///src/modules/product-comparison-button/product-comparison-button.view.tsx?68cc","webpack:///src/modules/account-profile-edit/components/account-profile-edit-input.tsx?3bba","webpack:///./src/modules/farmlands-breadcrumb/farmlands-breadcrumb.view.tsx?3167","webpack:///src/modules/account-profile-edit/account-profile-edit.tsx?a9d6"],"names":["SignUpButton","_ref","id","className","text","ariaLabel","telemetryContent","disabled","link","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","Button","Object","assign","role","href","SignUpError","type","message","errorClassName","classnames","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","value","pattern","isRequired","onChange","fieldReference","InputType","TextArea","name","undefined","ref","SignUpLabel","forId","htmlFor","InputID","renderInputSection","inputs","needToReset","onInputChange","showErrors","addressForm","updateAddress","map","element","index","label","maxChars","customClass","baseSignUpItem","wrapper","errorMessage","Address","isAddressInput","input","updateForm","hasError","resetAddress","splice","BusinessSignUp","constructor","props","_this","super","this","BusinessSignUpDefaultInputs","FirstName","Text","resources","firstNameLabel","LastName","lastNameLabel","Email","emailAddressLabel","EmailRegex","defaultRegex","source","CompanyName","companyLabel","Department","departmentLabel","JobTitle","jobTitleLabel","Size","companySizeLabel","companyAddressLabel","Comment","commentLabel","formChildReference","moduleClassName","needsToReset","handleHeadingChange","event","config","heading","target","_onInputChange","newForm","state","formItems","forEach","item","setState","isReady","_isFormReady","hasSubmitErrors","_onAddressChange","errors","currentAddress","addressItem","find","address","addressHasErrors","showAddressErrors","currentInput","match","_onSubmit","preventDefault","context","firstName","_getItem","lastName","companyName","companyEmail","companyAddress","jobTitle","department","companySize","comments","newPartner","CompanySize","Comments","createProspectAsync","callerContext","actionContext","catch","_onCancel","cleanForm","isAddress","arguments","length","_addedReference","getTelemetryObject","request","telemetryPageName","friendlyName","telemetry","componentDidMount","_this$formChildRefere","current","focus","shouldComponentUpdate","nextProps","nextState","data","render","viewProps","_objectSpread","businessSignUp","moduleProps","ContainerWrapper","editProps","onEdit","requestContext","businessSignUpForm","_renderForm","renderView","slots","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","partialAddressErrorMessage","addressSlot","successPageURL","confirmationLink","linkUrl","destinationUrl","getUrlSync","form","FormWrapper","items","buttons","key","disclaimer","RichTextComponent","newFormFields","buildReviewCard","Node","cardProps","headerProps","rating","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","Module","modal","modalHeader","modalBody","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","ReviewsListview","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","review","ProductSpecificationView","ProductSpecification","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","title","row","_row$props$cellData$p","_row$props$cellData$p2","cellData","dangerouslySetInnerHTML","__html","removeUndefinedAttributes","AccountProfileEditLoadingIcon","Iframe","iframeRef","isConsentGiven","cookies","srcURL","URL","exception","protocol","toLocaleLowerCase","iframeClassName","Heading","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","alert","_renderAlert","cookieConsentRequiredMessage","targetURL","src","height","iframeAriaLabel","ContentCardLinks","_mapEditableLinks","linkdata","editableLinks","linkText","contentAction","etext","btnClass","editableLink","openInNewTab","additionalProperties","onTelemetryClick","push","links","Msdyn365","onTextChange","actionableRegion","HeadingTag","ContentBlock","handleTextChange","handleParagraphChange","paragraph","handleLinkTextChange","linkIndex","device","Type","mobileHeadingColour","desktopHeadingColour","mobileParagraphColour","desktopParagraphColour","mobileParagraphBackgroundColour","desktopImage","mobileImage","shouldOpenLinkInNewTab","imageAriaLabel","CustomTag","tag","contentBlockTitle","style","isMobile","color","isValidColour","imageProps","imageType","gridSettings","imageSettings","contentBlockLinks","LinksComponent","contentBlockText","getRichTextHtml","contentBlockImage","contentBlockviewProps","image","moduleClass","contentBlockContainer","imageContainer","detailsDesktopContainer","detailsMobileContainer","contentBlockAnchorTag","imageLink","_getImageLink","region","imageAndLinks","__decorate","computed","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","onClose","CookieComplianceLinks","CookieCompliance","_this$props$config$ac","actionLinks","handleContentChange","content","visible","cookieRef","_onDismiss","bind","acceptCookiesAriaLabel","moduleConfig","MsDyn365","isBrowser","onDismiss","CookieComplianceBanner","AlertProps","fade","Content","ArrayExtensions","hasElements","acceptButton","setConsentCookie","location","reload","histogramItem","buttonProps","starLabel","bar","percentage","RatingsHistogramView","histogramItems","histogramProps","AccountGenericTileView","AccountGenericTile","CookieComplianceView","Alert","call","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","toLength","toString","requireObjectCoercible","getMethod","advanceStringIndex","regExpExec","MATCH","nativeMatch","maybeCallNative","regexp","O","matcher","RegExp","string","rx","S","res","done","global","fullUnicode","unicode","lastIndex","result","A","n","matchStr","ContentBlockView","rel","IAccountAddressTileDescription","description","AccountAddressTileLinks","AccountAddressTile","shareholderText","addressCount","_formatAddressDescription","isShareholderAccount","isShareholder","cart","headingTag","DescriptionComponent","count","numberWords","AccountProfileEditButton","TileList","_telemetryContent","StringExtensions","isNullOrWhitespace","_this$props$config$cl","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","singleSlideCarouselComponentProps","tileItemContainer","tileListContainer","tileListHeading","tiles","AccountAddressTileView","SignUpText","createElement","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","then","window","debug","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","_this$props$context$a2","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","loading","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","observer","ProductDescriptionView","ProductDescription","ProductDescriptionNode","colour","backgroundColor","bannerColour","bannerButtonColour","e","IFrameView","AccountProfileEditLabel","ContainerItemsComponent","isLoadingClassName","CheckoutExpressPaymentContainerView","_ref2","checkoutPlainContainerProps","waiting","tileListView","tileItem","keyIndex","BusinessSignUpItem","BusinesSignUpView","button","detailsContainer","deliveryData","businessPartnersView","businessPartnersProps","backToBusinessPartnersLink","businessPartnersHeading","businessPartnersTable","businessPartnerUsersTable","AccountProfileEditError","Link","noclick","attribute","itemProp","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","root","_getCustomBreadcrumbLinks","itemPosition","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","locale","NameTranslations","_Window$digitalData$p","Window","digitalData","page","breadcrumb","Url","nameTranslations","_nameTranslation","nameTranslation","Language","toLowerCase","_getPDPLinks","categoryPaths","product","url","requestUrl","_Window$digitalData$p3","_Window$digitalData$p2","document","Name","hideProductName","_goBack","history","back","_getPDPBackButton","query","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","backButton","LoyaltySignUpView","cta","removePickUpFromDeliveryArray","response","filter","deliveryMethod","DeliveryType","isPickUpAvailable","_getActivePrice","async","products","productRecIds","prod","RecordId","projectDomain","ChannelId","channelId","CatalogId","catalogId","affliations","customerInput","GetCustomerInput","customer","getCustomer","CustomerAffiliations","affliation","aff","AffiliationId","RetailAffiliationId","CustomerId","AccountNumber","getActivePricesAsync","queryResultSettings","Date","activePricesResponse","activePrice","ProductId","_activePrice$Extensio","_activePrice$Extensio2","priceIncGST","ExtensionProperties","prop","Key","specialPriceIncGST","trace","Error","_product$result","_this$state$products$","_this$state$products$2","_this$state$products$3","recordId","salesPriceInclGST","Value","DecimalValue","getDeliveryOptionsAsync","Promise","all","DeliveryOptions","reaction","_variantProduct$resul","variantProduct","variantRecordId","variantSalesPriceInclGST","AdjustedPrice","variantResponse","_createDeliveryTable","pickUpTableHeader","deliveryTableHeader","deliveryOption","option","_option$DeliveryModes","DeliveryModes","ChargeDescription","ChargeAmount","toFixed","AccountProfileEditItem","AccountProfileEditLoading","_ref3","icon","AccountProfileEditView","accountProfileEdit","viewState","defaultAADConainer","aadConainer","accountProfileEditLocalAccount","isShowLoading","localAccount","buttonsWrapper","verificationSuccessModal","verificationSuccessModalMessage","LocalAccount","onlineLongDescription","onlineShortDescription","componentDidUpdate","eProps","longDesc","getExtensionProperty","ePropsValue","String","shortDesc","AccountGenericTileLinks","shareholderLinks","buttonsContainer","shouldShowModule","CheckoutExpressPaymentContainer","_this$props$data$chec","_getItems","primary","_handleCheckoutExpressContainerHeadingChange","checkoutExpressPaymentContainerHeading","shouldHideExpressPaymentContainer","checkout","shippingAddressFromExpressCheckout","_this$props$data$chec2","isExpressPaymentModulesReady","includes","_this$props$data$chec3","_this$props$data$chec4","_this$props$data$chec5","_this$props$data$chec6","_this$props$data$chec7","extensionPropertyKey","paymentTenderType","isModuleReady","property","BooleanValue","_this$props$data$chec8","isExpressCheckoutApplied","checkoutExpressPaymentSectionLoadingMessage","shouldHideExpressPaymentContainerClassName","WaitingComponent","_renderMsdyn365Text","CheckInConfirmationComponent","confirmationText","shouldShowQrCode","channelReferenceIdLabel","channelReferenceId","QRCode","size","CheckInErrorComponent","CheckInForPickup","checkInForOrderPickup","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","_additionalInformatio","formKey","resourceId","extensionPropertyList","ObjectExtensions","additionalInformation","StringValue","SalesOrdersDataActions","checkInForOrderPickupAsync","headerErrorMessage","genericErrorMessage","isCheckedIn","resolve","_onInit","_this$props$context$r","_this$props$context$r2","_this$props$context$r3","_this$props$context$r4","params","isEditor","isPreview","requiredParameterMissingErrorMessage","additionalInformationKeys","_this$props$context$r5","isHeaderError","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","additionalInformationHeading","ProductComparisonButton","PureComponent","_addToProductComparison","ProductComparisonItem","ProductComparisonState","instance","addItem","_removeFromProductComparison","removeItemById","comparisonItemId","_getNewState","getItemId","_getProdutComparisonDataByCatalogId","canProductBeAddedToProductComparison","hasItemById","currentProductsCount","_className","_instanceId","Random","Guid","generateGuid","_shouldUsePreview","_productComparisonPreview","_renderProductComparisonPreview","productComparisonPreview","buttonText","onClickHandler","isDisabled","Fragment","listModifiedEvent","subscribe","instanceId","handler","getSnapshotBeforeUpdate","previousProps","componentWillUnmount","unsubscribe","buttonClassName","shouldDisplayText","removeFromComparisonButtonText","productComparisonButton","_renderProductComparisonButton","productsLimit","_getProductsLimit","addToComparisonLimitReachedButtonText","addToComparisonButtonText","viewport","variant","VariantType","Browser","productComparisonMobileProductsLimit","productComparisonDesktopProductsLimit","_items$filter","getCatalogId","SearchBar","Component","onSearchTextChange","ev","searchText","onSearch","handleKeyUp","keyCode","KeyCodes","Enter","searchPlaceholderLabel","placeholder","onKeyUp","DataGrid","renderGridHeader","rowClassName","columns","column","reactKey","renderGridRow","_column$onRender","fieldName","onRender","loadDataInternal","loadData","isLoading","_unused","paging","loadMore","sortData","sorting","ascending","sort","item1","item2","value1","value2","compareResult","filterData","c","isSearchable","columnValue","indexOf","trim","getDataToDisplay","itemsCount","pageSize","slice","hasMore","defaultSorting","loadingLabel","businessPartnerLoadMore","noDataMessage","BusinessPartnerUsersTable","getColumns","businessUserTableNameHeadingText","businessUserTableEmailHeadingText","businessUserTableSpendingLimitHeadingText","renderSelectButton","businessPartnerUser","onSelect","select","getBusinessPartnerUsers","BusinessPartnersDataActions","getUsersAsync","bypassCache","businessPartner","BusinessPartnerId","StatusValue","spendingLimitStr","SpendingLimit","cultureFormatter","formatCurrency","businessPartnerSearchCustomer","BusinessPartnersTable","businessPartnerName","getBusinessPartners","getManagedBusinessPartnersAsync","businessPartnerSearchCompany","BusinessPartners","onSelectBusinessPartner","selectedBusinessPartner","onSelectBusinessPartnerUser","setAccountSelectionCookie","homeUrl","removeAccountSelectionCookie","Waiting","CheckInViewComponent","_props$config$additio","FormBuilder","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","onSubmit","AccountProfileEditLoadingMessage","OrderInfomation","orderInformationProps","salesId","receiptId","createdDate","amount","channelName","channelAddress","SalesLine","salesLineProps","salesLine","buyAgainButton","GroupDelivery","deliveryProps","Group","_ref4","groupProps","delivery","salesLinesProps","salesLines","isCashAndCarryTransaction","LineId","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","_ref5","groupsProps","groups","group","OrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","_ref7","paymentMethodsProps","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","OrderDetailsView","_ref9","viewModes","tableViewActions","table","orderInfomation","orderSummary","payment","help","FarmlandsPromotionBlockButton","displayOnlyTo","_shouldShowTo","isLoggedIn","displayTo","loggedOutOnly","loggedInOnly","alt","altText","contentBlockButtons","console","log","isBusinessAccountProperty","_isBusinessAccountPro","isCasual","_isBusinessAccountPro2","isGuest","findExtensionProperty","isShareholderAccountNotOnHold","custHoldStatusProp","onHoldStatus","isShareholderAccountNotInactive","custAccountStatusProp","accountStatus","isShareholderAccountDisabled","isShareholderAccountInactive","hasEcommerceAccess","userContactDetails","_userContactDetails$C","CustomerAccounts","account","IsActive","Permissions","Authorities","Authority","extensionProperties","keyValue","typeValue","extensionProperty","Boolean","Integer","IntegerValue","Decimal","str","ProductComparisonButtonViewFunctionalComponent","AccountProfileEditInput","BreadCrumbView","AccountProfileEdit","onTextBoxChange","givenName","surname","emailRegex","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","Modal","isOpen","ModalBody","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","display","_renderLocalAccount","innerHTML","childNodes","nodeValue","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","showEmail","emailAddressLabelText","labelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent","observable"],"mappings":"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","file":"static/js/6.3bea864df471e3b08c0c.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpButtonProps {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n link?: string;\n telemetryContent: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const SignUpButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n link,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent, text);\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n

{message}

\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InputType } from '../business-sign-up';\n\nexport interface IBusinessSignUpInputProps {\n id?: string;\n type: InputType;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IBusinessSignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nexport const SignUpInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n onChange,\n fieldReference\n}) => {\n if (type === InputType.TextArea) {\n return (\n \n );\n }\n\n return (\n \n );\n};\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessSignUpLabelProps {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nexport const SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, getUrlSync, RichTextComponent, Text } from '@msdyn365-commerce/core';\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBusinessSignUpConfig, IBusinessSignUpProps } from './business-sign-up.props.autogenerated';\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\n\nexport interface IBusinessSignUpExtendedProps extends IBusinessSignUpProps {\n formItems?: IFormItem[];\n}\n\nexport interface IBusinessSignUpItem {\n wrapper: INodeProps;\n isAddressInput?: boolean;\n id: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input?: React.ReactNode;\n}\n\nexport interface IBusinessState {\n isReady: boolean;\n formItems: IFormItem[];\n addressHasErrors: boolean;\n showAddressErrors: boolean;\n hasSubmitErrors: boolean;\n}\n\nexport interface IBusinessSignUpLocalAccount {\n FormWrapper: INodeProps;\n items: IBusinessSignUpItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface IBusinessSignUpViewProps {\n className: string;\n businessSignUp: IModuleProps;\n ContainerWrapper: INodeProps;\n heading: React.ReactNode;\n businessSignUpForm: IBusinessSignUpLocalAccount;\n formItems: IFormItem[];\n}\n\nexport interface IFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n address?: Address;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport enum InputType {\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\n Text = 'text',\n Address = 'address',\n Email = 'email',\n TextArea = 'textarea'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n Email = 'CompanyEmail',\n CompanyName = 'CompanyName',\n Address = 'CompanyAddress',\n JobTitle = 'JobTitle',\n Size = 'CompanySize',\n Department = 'Department',\n Comment = 'Comment'\n}\n\nexport const renderInputSection = (\n inputs: IFormItem[],\n className: string,\n needToReset: boolean,\n onInputChange: (event: React.ChangeEvent) => void,\n showErrors: boolean,\n addressForm?: React.ReactNode,\n updateAddress?: (errors: boolean, currAddress?: Address) => void\n): IBusinessSignUpItem[] => {\n return inputs.map((element, index) => {\n const { id, type, label, maxChars, isRequired, pattern, customClass, value, fieldReference } = element;\n\n const baseSignUpItem: IBusinessSignUpItem = {\n wrapper: {\n className: classnames(className, `${className}-${id}`, customClass)\n },\n id,\n label: ,\n errorMessage: \n };\n\n if (type === InputType.Address) {\n if (addressForm) {\n baseSignUpItem.isAddressInput = true;\n baseSignUpItem.input = (\n <>\n {React.cloneElement(addressForm as React.ReactElement, {\n updateForm: updateAddress,\n hasError: showErrors,\n isRequired: isRequired === undefined ? false : isRequired,\n resetAddress: needToReset\n })}\n \n );\n } else {\n // If the address slot is not filled, remove this input from the form\n inputs.splice(index, 1);\n }\n } else {\n baseSignUpItem.input = (\n \n );\n }\n\n return baseSignUpItem;\n });\n};\n\n/**\n *\n * Business Request Form Modules\n * Form that a business can use to submit a request to become a partner with Microsoft.\n * @extends {React.Component>}\n */\nclass BusinessSignUp extends React.Component {\n // Used as default data\n public BusinessSignUpDefaultInputs: IFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.firstNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.lastNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.emailAddressLabel,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-50'\n },\n {\n id: InputID.CompanyName,\n type: InputType.Text,\n label: this.props.resources.companyLabel,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Department,\n type: InputType.Text,\n label: this.props.resources.departmentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.JobTitle,\n type: InputType.Text,\n label: this.props.resources.jobTitleLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Size,\n type: InputType.Text,\n label: this.props.resources.companySizeLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Address,\n type: InputType.Address,\n label: this.props.resources.companyAddressLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n },\n {\n id: InputID.Comment,\n type: InputType.TextArea,\n label: this.props.resources.commentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n }\n ];\n\n private readonly formChildReference: React.RefObject = React.createRef();\n\n private readonly moduleClassName: string = 'ms-business-sign-up';\n\n private needsToReset: boolean = false;\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IBusinessSignUpExtendedProps) {\n super(props);\n\n this.state = {\n isReady: false,\n formItems: this.props.formItems || this._addedReference(),\n addressHasErrors: false,\n showAddressErrors: false,\n hasSubmitErrors: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this.formChildReference.current?.focus();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { formItems } = this.state;\n const { className, heading } = config;\n\n const viewProps = {\n ...this.props,\n businessSignUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n ContainerWrapper: {\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n businessSignUpForm: this._renderForm(),\n formItems\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle the heading change event.\n * @param event - Content Editable Event.\n */\n public handleHeadingChange = (event: ContentEditableEvent): void => {\n this.props.config.heading.text = event.target.value;\n };\n\n private _renderForm(): IBusinessSignUpLocalAccount {\n const { config, resources, slots } = this.props;\n const { showAddressErrors, hasSubmitErrors, isReady, formItems } = this.state;\n const {\n signUpButtonArialabel,\n signUpButtonText,\n cancelButtonArialabel,\n cancelButtonText,\n errorMessage,\n partialAddressErrorMessage\n } = resources;\n const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\n const successPageURL =\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\n getUrlSync('home', this.props.context.actionContext);\n\n const form = {\n FormWrapper: {\n className: `${this.moduleClassName}__form `\n },\n items: renderInputSection(\n formItems,\n `${this.moduleClassName}__form-item`,\n this.needsToReset,\n this._onInputChange,\n showAddressErrors,\n addressForm,\n this._onAddressChange\n ),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasSubmitErrors && ,\n showAddressErrors && (\n \n )\n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n\n if (this.needsToReset) {\n this.needsToReset = false;\n }\n\n return form;\n }\n\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\n this.setState({\n isReady: this._isFormReady(),\n formItems: newForm,\n hasSubmitErrors: false\n });\n };\n\n private _addedReference(): IFormItem[] {\n const newFormFields = this.BusinessSignUpDefaultInputs;\n newFormFields[0].fieldReference = this.formChildReference;\n return newFormFields;\n }\n\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\n // Find address item\n const newForm = this.state.formItems;\n const addressItem = newForm.find(item => {\n return item.type === InputType.Address;\n });\n\n // If found --> set to currentAddress\n if (addressItem) {\n addressItem.address = currentAddress;\n\n // Update state with new values and set errors to false if address is not required field\n this.setState(\n {\n formItems: newForm,\n addressHasErrors: errors,\n showAddressErrors: false\n },\n () => {\n this.setState({ isReady: this._isFormReady() });\n }\n );\n }\n };\n\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const currentInput of formItems) {\n // Will return FALSE if:\n // - input field is required\n // IF is address AND addressHasErrors === true\n // ELSE value is undefined OR empty\n // OR\n // - pattern provided and value does not match pattern\n\n if (currentInput.isRequired) {\n if (currentInput.type === InputType.Address) {\n if (this.state.addressHasErrors) {\n return false;\n }\n } else if (currentInput.value === undefined || currentInput.value === '') {\n return false;\n }\n }\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _onSubmit = (event: React.MouseEvent) => {\n if (this.state.addressHasErrors) {\n this.setState({\n showAddressErrors: true\n });\n\n event.preventDefault();\n return;\n }\n\n const { context } = this.props;\n\n // Check for matching id and if not empty\n const firstName = this._getItem(InputID.FirstName);\n const lastName = this._getItem(InputID.LastName);\n const companyName = this._getItem(InputID.CompanyName);\n const companyEmail = this._getItem(InputID.Email);\n const companyAddress = this._getItem(InputID.Address, true);\n const jobTitle = this._getItem(InputID.JobTitle);\n const department = this._getItem(InputID.Department);\n const companySize = this._getItem(InputID.Size);\n const comments = this._getItem(InputID.Comment);\n\n // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\n if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\n companyAddress.address.Email = companyEmail.value;\n }\n\n const newPartner: BusinessPartnerProspect = {\n FirstName: firstName && firstName.value,\n LastName: lastName && lastName.value,\n CompanyName: companyName && companyName.value,\n Address: companyAddress && companyAddress.address && companyAddress.address,\n JobTitle: jobTitle && jobTitle.value,\n Department: department && department.value,\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\n Comments: comments && comments.value\n };\n\n // Create business partner request\n createProspectAsync({ callerContext: context.actionContext }, newPartner).catch(() => {\n this.setState({\n hasSubmitErrors: true,\n isReady: false\n });\n });\n };\n\n private readonly _onCancel = () => {\n // Reset values of the form\n const cleanForm = this.state.formItems;\n cleanForm.forEach(input => {\n input.value = '';\n });\n\n // Set reset flag so address input will get reset on next renderInputSection() call\n this.needsToReset = true;\n\n this.setState({\n isReady: false,\n formItems: cleanForm,\n addressHasErrors: true,\n showAddressErrors: false,\n hasSubmitErrors: false\n });\n };\n\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\n if (isAddress) {\n return this.state.formItems.find(item => {\n return item.id === id && item.address;\n });\n }\n return this.state.formItems.find(item => {\n return item.id === id && item.value !== '';\n });\n };\n}\n\nexport default BusinessSignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListState,\n IReviewsListViewProps\n} 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 {noReviewsMessage};\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 {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\nexport default ReviewsListview;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\n\r\nconst ProductSpecificationView: React.FC = (props) => {\r\n const {\r\n ProductSpecification,\r\n ProductSpecificationTableProps,\r\n ProductSpecificationTableBodyProps,\r\n productSpecificationResult\r\n } = props;\r\n return (\r\n \r\n {props.title}\r\n \r\n \r\n {productSpecificationResult &&\r\n productSpecificationResult.map((row) => {\r\n return removeUndefinedAttributes(row);\r\n })}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction removeUndefinedAttributes(row: JSX.Element | null): JSX.Element | null {\r\n if (\r\n (row?.props.cellData.props && !('dangerouslySetInnerHTML' in row?.props.cellData.props)) ||\r\n (row?.props.cellData.props.dangerouslySetInnerHTML?.__html !== undefined &&\r\n row?.props.cellData.props.dangerouslySetInnerHTML?.__html !== 'Not defined')\r\n ) {\r\n return row && row;\r\n }\r\n return null;\r\n}\r\n\r\nexport default ProductSpecificationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\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.\n * All rights reserved. See LICENSE 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 private _renderAlert(message: string): React.ReactNode | null {\n return (\n

\n {message}\n

\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\nexport default Iframe;\n","/* tslint:disable: no-duplicate-imports */\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n ITelemetryContent,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { ILinksData } from '../farmlands-carousel-content-block.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ContentCardLinks component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ContentCardLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return (\r\n
\r\n {editableLinks && editableLinks.length ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n private _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\r\n if (!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link, index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: btnClass,\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n };\r\n}\r\nexport default ContentCardLinks;\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 * IFarmlandsCarouselContentBlock 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 actionableRegion {\r\n imageAndLinks = 'imageAndLinks',\r\n linksOnly = 'linksOnly'\r\n}\r\n\r\nexport interface IFarmlandsCarouselContentBlockConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n desktopHeadingColour?: string;\r\n mobileHeadingColour?: string;\r\n paragraph?: Msdyn365.RichText;\r\n desktopParagraphColour?: string;\r\n mobileParagraphColour?: string;\r\n mobileParagraphBackgroundColour?: string;\r\n desktopImage: Msdyn365.IImageData;\r\n mobileImage?: Msdyn365.IImageData;\r\n links?: ILinksData[];\r\n actionableRegion?: actionableRegion;\r\n imageLink?: Msdyn365.ILinkData;\r\n shouldOpenLinkInNewTab?: boolean;\r\n imageAriaLabel?: string;\r\n className?: 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 ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IFarmlandsCarouselContentBlockProps extends Msdyn365.IModule {\r\n config: IFarmlandsCarouselContentBlockConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport { computed } from 'mobx';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport LinksComponent from './components/links';\r\nimport { isValidColour } from '../../common/method/functions';\r\nimport { actionableRegion as region, IFarmlandsCarouselContentBlockProps } from './farmlands-carousel-content-block.props.autogenerated';\r\n\r\ntype DeviceType = 'Mobile';\r\nexport interface IContentBlockViewProps extends IFarmlandsCarouselContentBlockProps<{}> {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer: INodeProps;\r\n detailsDesktopContainer: INodeProps;\r\n detailsMobileContainer: INodeProps;\r\n contentBlockAnchorTag?: INodeProps;\r\n imageLink?: string;\r\n shouldOpenLinkInNewTab?: boolean;\r\n imageAriaLabel?: string;\r\n}\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass ContentBlock extends React.PureComponent> {\r\n private telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n @computed get isMobile(): boolean {\r\n return (\r\n this.props.context.request &&\r\n this.props.context.request.device &&\r\n (this.props.context.request.device.Type as DeviceType) === 'Mobile'\r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n heading,\r\n mobileHeadingColour,\r\n desktopHeadingColour,\r\n paragraph,\r\n mobileParagraphColour,\r\n desktopParagraphColour,\r\n mobileParagraphBackgroundColour,\r\n desktopImage,\r\n mobileImage,\r\n links,\r\n shouldOpenLinkInNewTab,\r\n className,\r\n imageAriaLabel\r\n } = this.props.config;\r\n\r\n const CustomTag = (`${heading?.tag}` || 'h1') as keyof JSX.IntrinsicElements;\r\n const contentBlockTitle = heading && (\r\n \r\n {heading.text}\r\n \r\n );\r\n const imageProps = (imageType: Msdyn365.IImageData) => {\r\n return {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: imageType && imageType.imageSettings\r\n };\r\n };\r\n const contentBlockLinks = links && links.length > 0 && (\r\n \r\n );\r\n const contentBlockText = paragraph && (\r\n // tslint:disable-next-line: react-no-dangerous-html\r\n \r\n );\r\n const contentBlockImage = desktopImage && (\r\n <>\r\n \r\n {mobileImage && (\r\n \r\n )}\r\n \r\n );\r\n\r\n if (!contentBlockTitle && !contentBlockText && !contentBlockImage && !contentBlockLinks) {\r\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const contentBlockviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n className: classnames('farmlands-carousel-content-block', className)\r\n },\r\n imageContainer: { className: 'farmlands-carousel-content-block__image' },\r\n detailsDesktopContainer: {\r\n className: 'farmlands-carousel-content-block__details farmlands-carousel-content-block__details--desktop'\r\n },\r\n detailsMobileContainer: {\r\n style: { 'background-color': isValidColour(mobileParagraphBackgroundColour) || '#000000' },\r\n className: 'farmlands-carousel-content-block__details farmlands-carousel-content-block__details--mobile'\r\n },\r\n contentBlockAnchorTag: {\r\n tag: 'a',\r\n className: 'farmlands-carousel-content-block__link',\r\n role: 'link'\r\n },\r\n imageLink: this._getImageLink(),\r\n imageAriaLabel,\r\n shouldOpenLinkInNewTab: shouldOpenLinkInNewTab\r\n };\r\n\r\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\r\n }\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\r\n /* Handle link text change*/\r\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\r\n if (this.props.config.links && this.props.config.links[linkIndex]) {\r\n this.props.config.links[linkIndex].linkText = event.target.value;\r\n }\r\n };\r\n private _getImageLink(): string | null {\r\n const { imageLink, links, actionableRegion } = this.props.config;\r\n if (actionableRegion === region.imageAndLinks) {\r\n if (imageLink && imageLink.destinationUrl) {\r\n return imageLink.destinationUrl;\r\n } else if (links && links.length && links[0].linkUrl) {\r\n return links[0].linkUrl.destinationUrl;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default ContentBlock;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE 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 = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { 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 ? (\n \n ) : null}\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.\n * All rights reserved. See LICENSE 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(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\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 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
{error}
;\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\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 * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst RatingsHistogramView: React.FC = props => {\r\n const { heading, histogramItems, histogramProps, moduleProps } = props;\r\n return (\r\n \r\n {heading}\r\n \r\n {histogramItems.map(item => {\r\n return histogramItem(item);\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nconst histogramItem = (props: IHistogramItemViewProps) => {\r\n return (\r\n \r\n {props.starLabel}\r\n {props.bar}\r\n {props.percentage}\r\n \r\n );\r\n};\r\n\r\nexport default RatingsHistogramView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IAccountGenericTileViewProps } from './farmlands-account-generic-tile';\r\n\r\nconst AccountGenericTileView: React.FC = props => {\r\n const { AccountGenericTile, heading, links } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nexport default AccountGenericTileView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICookieComplianceViewProps } from './farmlands-cookie-compliance';\r\n\r\nconst CookieComplianceView: React.FC = props => {\r\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {text}\r\n {links}\r\n \r\n {acceptButton}\r\n \r\n \r\n );\r\n};\r\nexport default CookieComplianceView;","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockViewProps } from './farmlands-carousel-content-block';\r\n\r\nconst ContentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsDesktopContainer,\r\n detailsMobileContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n shouldOpenLinkInNewTab\r\n } = props;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n {image}\r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default ContentBlockView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\ninterface IAccountAddressTileDescription {\r\n description: string;\r\n}\r\n\r\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\r\n

{description}

\r\n);\r\n\r\nexport default IAccountAddressTileDescription;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { ILinksData } from '../farmlands-account-address-tile.props.autogenerated';\r\n\r\nexport interface IAccountAddressTileLinks {\r\n links: ILinksData[];\r\n}\r\n\r\nconst AccountAddressTileLinks: React.FC = ({ links }) => {\r\n if (links.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {links.map((link: ILinksData, index: number) => (\r\n \r\n {link.linkText}\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n\r\nexport default AccountAddressTileLinks;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { IFarmlandsAccountAddressTileData } from './farmlands-account-address-tile.data';\r\nimport { IFarmlandsAccountAddressTileProps } from './farmlands-account-address-tile.props.autogenerated';\r\nimport DescriptionComponent from './components/farmlands-account-address-tile-description';\r\nimport LinksComponent from './components/farmlands-account-address-tile-links';\r\nimport { isShareholder } from '../../common/method/functions';\r\n\r\nexport interface IAccountAddressTileViewProps\r\n extends IFarmlandsAccountAddressTileProps {\r\n AccountAddressTile: IModuleProps;\r\n className: string;\r\n heading?: React.ReactNode;\r\n links?: React.ReactNode;\r\n description?: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * AccountAddress component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass AccountAddressTile extends React.PureComponent<\r\n IFarmlandsAccountAddressTileProps\r\n> {\r\n public render(): JSX.Element {\r\n const { config, data } = this.props;\r\n const { className, heading, links, shareholderText } = config;\r\n const { address } = data;\r\n const addressCount = (address && address.result && address.result.length) || 0;\r\n const description = this._formatAddressDescription(addressCount);\r\n\r\n const isShareholderAccount: boolean = isShareholder(data.cart.result!.cart);\r\n\r\n const viewProps = {\r\n ...this.props,\r\n className: className,\r\n AccountAddressTile: {\r\n moduleProps: this.props,\r\n className: classnames('ms-account-address-tile', config.className)\r\n },\r\n heading: heading && (\r\n \r\n ),\r\n links: !isShareholderAccount && links && links.length > 0 && ,\r\n description: !isShareholderAccount ? (\r\n \r\n ) : (\r\n \r\n )\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _formatAddressDescription(count: number): string {\r\n const numberWords = ['no', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];\r\n if (count <= 1) {\r\n return `You have ${numberWords[count]} address saved.`;\r\n }\r\n if (count < 10) {\r\n return `You have ${numberWords[count]} addresses saved.`;\r\n }\r\n return `You have ${count} addresses saved.`;\r\n }\r\n}\r\n\r\nexport default AccountAddressTile;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface 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 = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} 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(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\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 public constructor(props: ITileListProps<{}>) {\n super(props);\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","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IAccountAddressTileViewProps } from './farmlands-account-address-tile';\r\n\r\nconst AccountAddressTileView: React.FC = props => {\r\n const {\r\n AccountAddressTile,\r\n heading,\r\n description,\r\n links\r\n } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nexport default AccountAddressTileView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE 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 {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} 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 infoMessageBar?: React.ReactNode;\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 private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\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, 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: { signInUrl, isAuthenticated }\n }\n },\n data\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 const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \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 \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\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) =>\n (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","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IProductDescriptionViewProps } from './farmlands-product-description';\r\n\r\nconst ProductDescriptionView: React.FC = props => {\r\n const {\r\n ProductDescription,\r\n ProductDescriptionNode\r\n } = props;\r\n\r\n return (\r\n \r\n {ProductDescriptionNode}\r\n \r\n );\r\n};\r\n\r\nexport default ProductDescriptionView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* tslint:disable: no-duplicate-imports */\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ICookieComplianceAcceptButton {\r\n acceptCookiesButtonText?: string;\r\n acceptCookiesButtonAriaLabel?: string;\r\n colour: string;\r\n /** The telemetry content */\r\n telemetryContent?: ITelemetryContent;\r\n onClose(): void;\r\n}\r\n\r\nexport const CookieComplianceAcceptButton: React.FC = ({\r\n acceptCookiesButtonText,\r\n acceptCookiesButtonAriaLabel,\r\n colour,\r\n telemetryContent,\r\n onClose\r\n}) => {\r\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n {acceptCookiesButtonText}\r\n \r\n );\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { IActionLinksData } from '../farmlands-cookie-compliance.props.autogenerated';\r\n\r\nexport interface ICookieComplianceLinks {\r\n links: IActionLinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ContentCardLinks component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class CookieComplianceLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return(\r\n \r\n {editableLinks && editableLinks.length ?\r\n \r\n : null\r\n }\r\n \r\n\r\n );\r\n }\r\n\r\n private _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\r\n if(!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link,index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n };\r\n}\r\n\r\nexport default CookieComplianceLinks;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { isValidColour } from '../../common/method/functions';\r\nimport { CookieComplianceAcceptButton, CookieComplianceLinks} from './components';\r\nimport { IFarmlandsCookieComplianceConfig, IFarmlandsCookieComplianceProps } from './farmlands-cookie-compliance.props.autogenerated';\r\n\r\nexport interface IAlertState {\r\n visible: boolean;\r\n}\r\n\r\nexport interface ICookieComplianceViewProps extends IFarmlandsCookieComplianceProps<{}> {\r\n CookieComplianceBanner: IModuleProps;\r\n AlertProps: IAlertProps;\r\n Content: INodeProps;\r\n text?: React.ReactNode;\r\n links?: React.ReactNode;\r\n acceptButton?: React.ReactNode;\r\n className: string;\r\n onDismiss(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CookieCompliance component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CookieCompliance extends React.PureComponent, IAlertState> {\r\n private cookieRef: React.RefObject;\r\n private telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n constructor(props: IFarmlandsCookieComplianceProps) {\r\n super(props);\r\n this.state = {visible:false};\r\n this.cookieRef = React.createRef();\r\n this._onDismiss = this._onDismiss.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n const { context } = this.props;\r\n\r\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\r\n this.setState({visible: true});\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { config, context, resources, telemetry } = this.props;\r\n const { bannerColour, bannerButtonColour } = config;\r\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\r\n const { visible } = this.state;\r\n\r\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\r\n let moduleConfig: IFarmlandsCookieComplianceConfig;\r\n\r\n try {\r\n moduleConfig = config;\r\n } catch(e) {\r\n telemetry.error(`Something went wrong while rendering the alert module ------${e}`);\r\n return
{e}
;\r\n }\r\n\r\n if (isConsentGiven && !visible) {\r\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const viewProps = {\r\n ...this.props,\r\n onDismiss: this._onDismiss,\r\n CookieComplianceBanner: {\r\n moduleProps: this.props,\r\n className: classnames('ms-cookie-compliance', moduleConfig.className),\r\n ref: this.cookieRef,\r\n style: { 'background-color': isValidColour(bannerColour) || '#00553d' }\r\n },\r\n AlertProps: {\r\n className: 'ms-cookie-compliance__container',\r\n color: 'white',\r\n fade: false\r\n },\r\n Content: {\r\n className: 'ms-cookie-compliance__content'\r\n },\r\n text: moduleConfig.content && (\r\n \r\n ),\r\n links: moduleConfig.actionLinks && moduleConfig.actionLinks.length > 0 && (\r\n \r\n ),\r\n acceptButton: (\r\n )\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /* Handle link text change*/\r\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent) => {\r\n if(this.props.config.actionLinks && this.props.config.actionLinks[linkIndex]) {\r\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\r\n }\r\n };\r\n\r\n /* Handle text content change*/\r\n public handleContentChange = (event: MsDyn365.ContentEditableEvent) => this.props.config.content = event.target.value;\r\n\r\n private _onDismiss(): void {\r\n const { context } = this.props;\r\n\r\n if (context && context.request && context.request.cookies) {\r\n context.request.cookies.setConsentCookie();\r\n location.reload();\r\n }\r\n this.setState({visible: false});\r\n }\r\n}\r\n\r\nexport default CookieCompliance;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\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 \n ) : null}\n \n );\n }\n}\nexport default IFrameView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface 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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutExpressPaymentContainerViewProps } from './checkout-express-payment-container';\n\ninterface IContainerItemsComponent {\n isLoadingClassName: string;\n items: React.ReactNode[];\n}\n\nconst ContainerItemsComponent: React.FC = ({ isLoadingClassName, items }) => (\n
{items}
\n);\n\nconst CheckoutExpressPaymentContainerView: React.FC = ({\n checkoutPlainContainerProps,\n items,\n isReady,\n waiting,\n title,\n headerProps\n}) => {\n const isLoadingClassName: string = isReady ? 'showContainer' : 'notShowContainer';\n return (\n \n {title}\n {!isReady && waiting}\n \n \n );\n};\n\nexport default CheckoutExpressPaymentContainerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE 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 {title}\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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\n\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\n // Hide label and error message if rendering address section\n return (\n \n {!isAddressInput && label}\n {!isAddressInput && errorMessage}\n {input}\n \n );\n};\n\nconst BusinesSignUpView: React.FC = props => {\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\n\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\n\n return (\n \n \n {heading}\n \n {items &&\n items.map((item: IBusinessSignUpItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n \n \n );\n};\n\nexport default BusinesSignUpView;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockViewProps } from './farmlands-delivery-options';\r\n\r\nconst ContentBlockView: React.FC = (props) => {\r\n const { contentBlockContainer, imageContainer, detailsContainer, title, text, links, image, deliveryData } = props;\r\n\r\n return (\r\n \r\n {image}\r\n \r\n {title}\r\n {text}\r\n {links}\r\n {deliveryData}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessPartnersViewProps } from './business-partners';\n\n/**\n * View layout of business partner module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n return (\n \n {props.backToBusinessPartnersLink}\n {props.businessPartnersHeading}\n {props.businessPartnersTable}\n {props.businessPartnerUsersTable}\n \n );\n};\n\nexport default businessPartnersView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 );\n};\n\nexport default AccountProfileEditError;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\ninterface ILink {\r\n className?: string;\r\n text?: string;\r\n href?: string;\r\n ariaLabel?: string;\r\n index: string;\r\n noclick?: boolean;\r\n telemetryContent: ITelemetryContent;\r\n}\r\n\r\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\r\n\r\n const linkText = text !== undefined ? text : '';\r\n payLoad.contentAction.etext = linkText;\r\n\r\n // Construct telemetry attribute to render\r\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\r\n\r\n return (\r\n \r\n \r\n {linkText}\r\n \r\n \r\n \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\ninterface ISeparator {\r\n separator: string;\r\n}\r\n\r\nexport const Separator: React.FC = ({ separator }) => (\r\n {' '}\r\n {separator}\r\n {' '}\r\n);\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IFarmlandsBreadcrumbData } from './farmlands-breadcrumb.data';\r\nimport { IFarmlandsBreadcrumbProps, ILinksData } from './farmlands-breadcrumb.props.autogenerated';\r\nimport { Link } from './components/link';\r\nimport { Separator } from './components/separator';\r\n\r\nexport interface IBreadcrumbViewProps extends IFarmlandsBreadcrumbProps {\r\n root?: React.ReactNode;\r\n links?: React.ReactNode[];\r\n backButton?: React.ReactNode;\r\n separator?: React.ReactNode;\r\n BreadcrumbContainer: IModuleProps;\r\n BreadcrumbList: INodeProps;\r\n BreadcrumbListItem: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * Breadcrumb component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass Breadcrumb extends React.PureComponent> {\r\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\r\n\r\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n\r\n public render(): JSX.Element | null {\r\n\r\n const { className } = this.props.config;\r\n let rootLink = null;\r\n let breadcrumbLinks = null;\r\n let backButtonComponent = null;\r\n rootLink = this._getRootLink();\r\n const itemPosition = rootLink ? 1 : 0;\r\n if (this._pageType === 'Category') {\r\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\r\n if (!breadcrumbLinks) {\r\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\r\n }\r\n } else if (this._pageType === 'Product') {\r\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\r\n if (!breadcrumbLinks) {\r\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\r\n if (breaCrumbType === 'category') {\r\n breadcrumbLinks = this._getPDPLinks(itemPosition);\r\n }\r\n if (breaCrumbType === 'categoryAndBack') {\r\n backButtonComponent = this._getPDPBackButton();\r\n breadcrumbLinks = this._getPDPLinks(itemPosition);\r\n }\r\n if (breaCrumbType === 'back') {\r\n backButtonComponent = this._getPDPBackButton();\r\n if (backButtonComponent === null) {\r\n breadcrumbLinks = this._getPDPLinks(itemPosition);\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\r\n }\r\n const linkSeparator = ;\r\n\r\n const breadcrumbViewProps = {\r\n ...this.props,\r\n BreadcrumbContainer: {\r\n moduleProps: this.props,\r\n className: classnames('ms-breadcrumb', className),\r\n tag: 'nav',\r\n role: 'navigation'\r\n },\r\n BreadcrumbList: {\r\n tag: 'ol' as NodeTag,\r\n className: 'ms-breadcrumb_list'\r\n },\r\n BreadcrumbListItem: {\r\n tag: 'li',\r\n className: 'ms-breadcrumb_item'\r\n },\r\n root: rootLink,\r\n links: breadcrumbLinks,\r\n backButton: backButtonComponent,\r\n separator: linkSeparator\r\n };\r\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\r\n }\r\n\r\n private readonly _getRootLink = (): JSX.Element | null => {\r\n const { root } = this.props.config;\r\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\r\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\r\n return null;\r\n }\r\n return (\r\n );\r\n\r\n };\r\n\r\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\r\n const { links } = this.props.config;\r\n\r\n if (!links || links.length === 0) {\r\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\r\n return null;\r\n }\r\n return (\r\n links.map((value: ILinksData, index: number) => {\r\n itemPosition++;\r\n return (\r\n \r\n );\r\n }));\r\n };\r\n\r\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\r\n const { data } = this.props;\r\n const categoryHierarchy = data.categoryHierarchy.result;\r\n if (!categoryHierarchy) {\r\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n return (\r\n categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\r\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\r\n if (MsDyn365.isBrowser) {\r\n if ((Window as any).digitalData.page.attributes.breadcrumb?.length < itemPosition) {\r\n (Window as any).digitalData.page.attributes.breadcrumb.push(friendlyName);\r\n }\r\n else {\r\n (Window as any).digitalData.page.attributes.breadcrumb = [friendlyName];\r\n }\r\n }\r\n itemPosition++;\r\n return (\r\n \r\n );\r\n }));\r\n\r\n };\r\n\r\n /**\r\n * The function to get translation name for the locale.\r\n * @param locale - The locale information.\r\n * @param nameTranslations - The name translations names.\r\n * @returns - The translation name for the locale.\r\n */\r\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation?.Text;\r\n };\r\n\r\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\r\n const { data, config } = this.props;\r\n const categoryHierarchy = data.categoryPaths.result;\r\n const product = data.product.result;\r\n const url = this.props.context.request.url.requestUrl.href;\r\n if (!categoryHierarchy) {\r\n this.props.context.telemetry.error('Category path content is empty for the product');\r\n return null;\r\n }\r\n const links: JSX.Element[] = [];\r\n\r\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\r\n itemPosition++;\r\n if (typeof document !== 'undefined' && typeof window !== 'undefined') {\r\n if ((Window as any).digitalData.page.attributes.breadcrumb?.length < itemPosition) {\r\n (Window as any).digitalData.page.attributes.breadcrumb.push(value.Name);\r\n }\r\n else {\r\n (Window as any).digitalData.page.attributes.breadcrumb = [value.Name];\r\n }\r\n links.push(\r\n \r\n );\r\n }\r\n });\r\n if (product && !config.hideProductName) {\r\n itemPosition++;\r\n if (typeof document !== 'undefined' && typeof window !== 'undefined') {\r\n if ((Window as any).digitalData.page.attributes.breadcrumb?.length < itemPosition) {\r\n (Window as any).digitalData.page.attributes.breadcrumb.push(product.Name);\r\n }\r\n else {\r\n (Window as any).digitalData.page.attributes.breadcrumb = [product.Name];\r\n }\r\n links.push(\r\n \r\n );\r\n }\r\n }\r\n return links;\r\n\r\n };\r\n\r\n private readonly _goBack = (): void => {\r\n window.history.back();\r\n };\r\n\r\n private readonly _getPDPBackButton = (): JSX.Element | null => {\r\n const isBackAllowed = this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\r\n if (!isBackAllowed) {\r\n return null;\r\n }\r\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\r\n return null;\r\n }\r\n return (\r\n \r\n {this.props.resources.backToResultsText}\r\n \r\n );\r\n\r\n };\r\n}\r\n\r\nexport default Breadcrumb;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = 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 {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","import * as React from 'react';\r\nimport { ILinksData } from '../farmlands-delivery-options.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n}\r\n\r\nconst ContentCardLinks: React.FC = ({ links }) => (\r\n
\r\n {links.map((cta: ILinksData, index: number) => {\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n return (\r\n \r\n {cta.linkText}\r\n \r\n );\r\n })}\r\n
\r\n);\r\n\r\nexport default ContentCardLinks;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { reaction } from 'mobx';\r\nimport { getDeliveryOptionsAsync } from '../../actions/farmlands-get-delivery-options-calls.action';\r\nimport LinksComponent from './components/links';\r\nimport { IFarmlandsDeliveryOptionsData } from './farmlands-delivery-options.data';\r\nimport { IFarmlandsDeliveryOptionsProps } from './farmlands-delivery-options.props.autogenerated';\r\nimport { getActivePricesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { getCustomer, GetCustomerInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n ProjectionDomain,\r\n AffiliationLoyaltyTier,\r\n CustomerAffiliation,\r\n ProductPrice,\r\n CommerceProperty\r\n} from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport interface IContentBlockViewProps extends IFarmlandsDeliveryOptionsProps {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer: INodeProps;\r\n detailsContainer: INodeProps;\r\n deliveryData?: any;\r\n}\r\nexport interface IDeliveryOptionsComponentState {\r\n products: any[];\r\n deliveryData: any;\r\n}\r\n\r\nlet deliveryData: any;\r\n\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass ContentBlock extends React.PureComponent<\r\n IFarmlandsDeliveryOptionsProps,\r\n IDeliveryOptionsComponentState\r\n> {\r\n constructor(props: IFarmlandsDeliveryOptionsProps) {\r\n super(props);\r\n this.state = {\r\n products: [this.props.data.product],\r\n deliveryData: null,\r\n };\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const { data, context } = this.props;\r\n const { product } = this.props.data;\r\n // set deliveryData on load of the module\r\n const recordId = await product?.result?.RecordId;\r\n await this._getActivePrice();\r\n const salesPriceInclGST = this.state.products[0].result.ExtensionProperties?.find(\r\n (prop: CommerceProperty) => prop.Key === 'ItemPriceWithGST'\r\n )?.Value?.DecimalValue;\r\n const response = await getDeliveryOptionsAsync({\r\n context: { callerContext: this.props.context.actionContext, queryResultSettings: {} },\r\n recordId,\r\n salesPriceInclGST\r\n });\r\n deliveryData = await Promise.all(response.DeliveryOptions);\r\n this.setState({ deliveryData: deliveryData });\r\n // run below logic when the product variant is selected\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n reaction(\r\n () => (data.product.result ? data.product.result.RecordId : null),\r\n async () => {\r\n if (context && data.product.result) {\r\n const variantProduct = data.product;\r\n const variantRecordId = await variantProduct?.result?.RecordId;\r\n const variantSalesPriceInclGST = await variantProduct.result.AdjustedPrice;\r\n const variantResponse = await getDeliveryOptionsAsync({\r\n context: { callerContext: this.props.context.actionContext, queryResultSettings: {} },\r\n recordId: variantRecordId,\r\n salesPriceInclGST: variantSalesPriceInclGST\r\n });\r\n deliveryData = await Promise.all(variantResponse.DeliveryOptions);\r\n this.setState({ deliveryData: deliveryData });\r\n }\r\n }\r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph, image, links, className } = this.props.config;\r\n const contentBlockTitle = heading && heading.text && (\r\n \r\n );\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: image && image.imageSettings\r\n };\r\n const contentBlockLinks = links && links.length > 0 && ;\r\n const contentBlockText = paragraph && (\r\n \r\n );\r\n const contentBlockImage = image && ;\r\n\r\n if (!contentBlockTitle && !contentBlockText && !contentBlockImage && !contentBlockLinks) {\r\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\r\n return null;\r\n }\r\n const contentBlockviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n className: classnames('farmlands-delivery-options__content-block', className)\r\n },\r\n imageContainer: { className: 'farmlands-delivery-options__content-block__image' },\r\n detailsContainer: { className: 'farmlands-delivery-options__content-block__details' },\r\n deliveryData: this._createDeliveryTable(this.state.deliveryData)\r\n };\r\n\r\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\r\n }\r\n\r\n private _createDeliveryTable(deliveryData: IFarmlandsDeliveryOptionsData | undefined): React.ReactNode | undefined {\r\n const { pickUpTableHeader, deliveryTableHeader } = this.props.config;\r\n const deliveryOption = this.removePickUpFromDeliveryArray(deliveryData);\r\n return deliveryData ? (\r\n \r\n \r\n \r\n \r\n \r\n {deliveryOption.length > 0 ? (\r\n // Add delivery options to the table\r\n deliveryOption.map((option: any, index: number) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })\r\n ) : (\r\n // If no delivery options are available\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n {pickUpTableHeader}{deliveryTableHeader}
\r\n {option.DeliveryModes[0].ChargeDescription}\r\n {this.isPickUpAvailable(deliveryData) ? 'FREE' : 'UNAVAILABLE'}${option.DeliveryModes[0].ChargeAmount?.toFixed(2)}
Standard ItemFREEUNAVAILABLE
\r\n ) : undefined;\r\n }\r\n\r\n private removePickUpFromDeliveryArray = (response: any) => {\r\n return response?.filter((deliveryMethod: any) => deliveryMethod.DeliveryType === 'Delivery');\r\n };\r\n\r\n private isPickUpAvailable = (response: any): boolean => {\r\n const isPickUpAvailable = response?.filter((deliveryMethod: any) => deliveryMethod.DeliveryType === 'Pickup');\r\n return isPickUpAvailable.length > 0;\r\n };\r\n\r\n private _getActivePrice = async (): Promise => {\r\n let products = this.state.products || [];\r\n const productRecIds = products && products.length > 0 ? products.map((prod) => prod.result.RecordId) : [];\r\n const projectDomain: ProjectionDomain = {\r\n ChannelId: this.props.context.request.apiSettings.channelId,\r\n CatalogId: this.props.context.request.apiSettings.catalogId\r\n };\r\n const affliations: AffiliationLoyaltyTier[] = [];\r\n const customerInput = new GetCustomerInput(this.props.context.actionContext.requestContext.apiSettings);\r\n const customer = await getCustomer(customerInput, this.props.context.actionContext);\r\n\r\n if (customer && customer.CustomerAffiliations) {\r\n customer.CustomerAffiliations.forEach((affliation: CustomerAffiliation) => {\r\n const aff: AffiliationLoyaltyTier = {\r\n AffiliationId: affliation.RetailAffiliationId,\r\n CustomerId: customer.AccountNumber\r\n };\r\n affliations.push(aff);\r\n });\r\n }\r\n\r\n await getActivePricesAsync(\r\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\r\n projectDomain,\r\n productRecIds,\r\n new Date(),\r\n null,\r\n affliations,\r\n true\r\n )\r\n .then((activePricesResponse: ProductPrice[]) => {\r\n products = products.map((prod) => {\r\n const activePrice = activePricesResponse.find(\r\n (product) => product.ProductId === prod.result.RecordId\r\n );\r\n if (activePrice) {\r\n const priceIncGST = activePrice.ExtensionProperties?.find(\r\n (prop: CommerceProperty) => prop.Key === 'BasePriceWithGST'\r\n );\r\n const specialPriceIncGST = activePrice.ExtensionProperties?.find(\r\n (prop: CommerceProperty) => prop.Key === 'ItemPriceWithGST'\r\n );\r\n prod.result.ExtensionProperties.push(priceIncGST);\r\n prod.result.ExtensionProperties.push(specialPriceIncGST);\r\n }\r\n return prod;\r\n });\r\n this.setState({\r\n products: products\r\n });\r\n })\r\n .catch((error: Error) => {\r\n this.props.context.actionContext.trace(error.message);\r\n this.props.context.actionContext.telemetry.exception(error);\r\n this.props.context.actionContext.telemetry.debug(\r\n `[get Affiliation based price on Product Collection]Error executing action`\r\n );\r\n throw new Error('[get Affiliation based price on Product Collection]Error executing action');\r\n });\r\n };\r\n}\r\n\r\nexport default ContentBlock;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\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 return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = 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","import { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { IReportReviewModalViewProps, IReviewCardViewProps, IReviewsListState, IReviewsListViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n averageRating,\r\n filterByDropdown,\r\n moduleProps,\r\n noReviewsMessage,\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n refineReviewsProps,\r\n reportReviewModal,\r\n reviewsListProps,\r\n reviewCards,\r\n reviewCount,\r\n reviewModal,\r\n sortByDropdown,\r\n state,\r\n userReview\r\n } = props;\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n return {noReviewsMessage};\r\n }\r\n\r\n return (\r\n \r\n {averageRating}\r\n {reviewCount}\r\n \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n \r\n { reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal)}\r\n {createReportModal(reportReviewModal, state)}\r\n \r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.rating}\r\n {props.name}\r\n {props.date}\r\n \r\n \r\n \r\n {props.reviewTitle}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike}\r\n {props.edit}\r\n {props.report}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IFarmlandsProductDescriptionData } from './farmlands-product-description.data';\r\nimport { IFarmlandsProductDescriptionProps } from './farmlands-product-description.props.autogenerated';\r\nimport { getExtensionProperty, ePropsValue } from '../../common/method/functions';\r\n\r\nexport interface IProductDescriptionViewProps extends IFarmlandsProductDescriptionProps<{}> {\r\n ProductDescription: IModuleProps;\r\n ProductDescriptionNode: React.ReactNode;\r\n}\r\n\r\nexport interface IFarmlandsProductDescriptionState {\r\n onlineLongDescription: string;\r\n onlineShortDescription: string;\r\n}\r\n\r\n/**\r\n *\r\n * ProductSpecification component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass ProductDescription extends React.Component, IFarmlandsProductDescriptionState> {\r\n constructor(props: IFarmlandsProductDescriptionProps) {\r\n super(props);\r\n this.state = {\r\n onlineLongDescription: '',\r\n onlineShortDescription: '',\r\n };\r\n }\r\n\r\n public componentDidUpdate(): void {\r\n const {\r\n ExtensionProperties: eProps\r\n } = this.props.data.product.result!;\r\n\r\n // Only update description values if the new values are not empty and are different from the existing strings.\r\n const longDesc = getExtensionProperty(eProps!, 'OnlineLongDescription', ePropsValue.String);\r\n const shortDesc = getExtensionProperty(eProps!, 'OnlineShortDescription', ePropsValue.String);\r\n\r\n if (this.state.onlineLongDescription !== longDesc && longDesc !== '') {\r\n this.setState({\r\n onlineLongDescription: longDesc\r\n });\r\n }\r\n\r\n if (this.state.onlineShortDescription !== shortDesc && shortDesc !== '') {\r\n this.setState({\r\n onlineShortDescription: shortDesc\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps = {\r\n ...this.props,\r\n ProductDescription: {\r\n moduleProps: this.props,\r\n className: classnames('ms-product-specification', this.props.config.className)\r\n },\r\n ProductDescriptionNode: (\r\n \r\n )\r\n } as IProductDescriptionViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default ProductDescription;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { ILinksData } from '../farmlands-account-generic-tile.props.autogenerated';\r\n\r\nexport interface IAccountGenericTileLinks {\r\n links: ILinksData[];\r\n}\r\n\r\nconst AccountGenericTileLinks: React.FC = ({ links }) => {\r\n if (links.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {links.map((link: ILinksData, index: number) => (\r\n \r\n {link.linkText}\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n\r\nexport default AccountGenericTileLinks;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { IFarmlandsAccountGenericTileData } from './farmlands-account-generic-tile.data';\r\nimport {\r\n IFarmlandsAccountGenericTileConfig, IFarmlandsAccountGenericTileProps\r\n} from './farmlands-account-generic-tile.props.autogenerated';\r\nimport LinksComponent from './components/farmlands-account-generic-tile-links';\r\nimport { isShareholder } from '../../common/method/functions';\r\n\r\nexport interface IAccountGenericTileViewProps extends IFarmlandsAccountGenericTileProps {\r\n AccountGenericTile: IModuleProps;\r\n className: string;\r\n heading?: React.ReactNode;\r\n links?: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * AccountGeneric component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass AccountGenericTile extends React.PureComponent> {\r\n public render(): JSX.Element {\r\n const { config, data } = this.props;\r\n const { className, heading } = config;\r\n\r\n const links = isShareholder(data.cart.result!.cart)\r\n ? this.props.config.shareholderLinks\r\n : this.props.config.links;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n className: className,\r\n AccountGenericTile: {\r\n moduleProps: this.props,\r\n className: classnames('ms-account-generic-tile', config.className)\r\n },\r\n heading: heading && ,\r\n links: links && links.length > 0 && \r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default AccountGenericTile;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockViewProps } from './farmlands-promotion-block';\r\n\r\nconst ContentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n buttonsContainer,\r\n title,\r\n text,\r\n buttons,\r\n image,\r\n shouldShowModule\r\n } = props;\r\n\r\n return shouldShowModule ? (\r\n \r\n <>\r\n
\r\n {image}\r\n \r\n {title}\r\n {text}\r\n \r\n
\r\n {buttons}\r\n \r\n
\r\n ) : null;\r\n};\r\n\r\nexport default ContentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleStateProps } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport classname from 'classnames';\n\nimport { reaction } from 'mobx';\nimport { ICheckoutExpressPaymentContainerData } from './checkout-express-payment-container.data';\nimport {\n ICheckoutExpressPaymentContainerProps,\n ICheckoutExpressPaymentContainerHeadingData\n} from './checkout-express-payment-container.props.autogenerated';\nimport { WaitingComponent } from '../../common/waiting';\n\n/**\n * ICheckoutExpressPaymentContainerModuleProps interface.\n */\nexport interface ICheckoutExpressPaymentContainerModuleProps\n extends ICheckoutExpressPaymentContainerProps,\n IModuleStateProps {}\n\nexport interface ICheckoutExpressPaymentContainerViewProps\n extends ICheckoutExpressPaymentContainerProps<{}>,\n ICheckoutExpressPaymentContainerState {\n checkoutPlainContainerProps: IModuleProps;\n items: React.ReactNode[];\n isReady?: boolean;\n waiting?: React.ReactNode;\n title?: React.ReactNode;\n headerProps: INodeProps;\n}\n\n/**\n * Checkout Express Payment Container State.\n */\nexport interface ICheckoutExpressPaymentContainerState {\n isReady?: boolean;\n shouldHideExpressPaymentContainer?: boolean;\n}\n\n/**\n *\n * CheckoutExpressPaymentContainer component\n * @extends {React.PureComponent>}\n */\n@observer\nexport class CheckoutExpressPaymentContainer extends React.PureComponent<\n ICheckoutExpressPaymentContainerProps,\n ICheckoutExpressPaymentContainerState\n> {\n private readonly moduleClassName: string = 'ms-checkout-express-section-container';\n\n public constructor(props: ICheckoutExpressPaymentContainerModuleProps) {\n super(props);\n this.state = {\n isReady: false,\n shouldHideExpressPaymentContainer: this.props.data.checkout.result?.shippingAddressFromExpressCheckout ? true : false\n };\n }\n\n public componentDidMount(): void {\n reaction(\n () => this.props.data.checkout.result?.isExpressPaymentModulesReady,\n () => {\n const items = this._getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout express payment container content is empty, module wont render');\n }\n let isReady = true;\n\n for (const item of items) {\n // @ts-ignore\n if (item.key.includes('checkout-express')) {\n // @ts-ignore\n const extensionPropertyKey = `is${item.props.config.paymentTenderType}ExpressModuleReady`;\n\n const isModuleReady =\n this.props.data.checkout.result?.isExpressPaymentModulesReady?.find(\n property => property.Key === extensionPropertyKey\n )?.Value?.BooleanValue ?? false;\n isReady = isReady && isModuleReady;\n }\n }\n this.setState({ isReady });\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\n isExpressCheckoutApplied => {\n this.setState({ shouldHideExpressPaymentContainer: isExpressCheckoutApplied });\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { checkoutExpressPaymentContainerHeading },\n resources: { checkoutExpressPaymentSectionLoadingMessage }\n } = this.props;\n\n const items = this._getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout express payment container content is empty, module wont render');\n return null;\n }\n\n const shouldHideExpressPaymentContainerClassName: string = this.state.shouldHideExpressPaymentContainer ? 'hide' : '';\n\n const moduleClassName = classname(\n 'ms-checkout-express-payment-container',\n this.props.config.className,\n shouldHideExpressPaymentContainerClassName\n );\n\n const viewProps: ICheckoutExpressPaymentContainerViewProps = {\n ...this.props,\n\n checkoutPlainContainerProps: {\n moduleProps: this.props,\n className: moduleClassName\n },\n items: items,\n isReady: this.state.isReady,\n waiting: ,\n title: checkoutExpressPaymentContainerHeading && this._renderMsdyn365Text(checkoutExpressPaymentContainerHeading),\n headerProps: { className: 'ms-checkout-express-payment-container__head' }\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly _getItems = (): React.ReactNode[] => {\n const { slots } = this.props;\n return (slots && slots.primary && slots.primary.length && slots.primary) || [];\n };\n\n /**\n * Renders heading.\n * @param checkoutExpressPaymentContainerHeading - The checkout express container heading.\n * @returns React node.\n */\n private _renderMsdyn365Text(checkoutExpressPaymentContainerHeading: ICheckoutExpressPaymentContainerHeadingData): React.ReactNode {\n return (\n \n );\n }\n\n /**\n * Event handler for heading change event.\n * @param event - The content change event in heading element.\n * @returns The new heading value.\n */\n private _handleCheckoutExpressContainerHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.checkoutExpressPaymentContainerHeading!.text = event.target.value);\n}\n\nexport default CheckoutExpressPaymentContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE 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 * 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

{confirmationText}

\n {channelReferenceId && (\n

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

\n )}\n {channelReferenceId && shouldShowQrCode && (\n \n \n \n )}\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 = ({ errorMessage }) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 * 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 * 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 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 \n ),\n checkInForOrderPickup: this.checkInForOrderPickup,\n additionalInformationValues: this.props.config.additionalInformationKeys\n ? this.props.config.additionalInformationKeys.map(() => {\n return {};\n })\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 (\n 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 || 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 = additionalInformationList?.map(\n additionalInformationKeyValuePair => {\n return {\n formKey: additionalInformationKeyValuePair.formKey.resourceId ?? '',\n value: additionalInformationKeyValuePair.value\n };\n }\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 );\n } catch (error) {\n this.state = { 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 // No error message shown in editor mode.\n if (this.props.context.request.params.isEditor) {\n return Promise.resolve();\n } else if (this.props.context.request.params.isPreview) {\n this.setState({ headerErrorMessage: this.props.resources.requiredParameterMissingErrorMessage });\n } else {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage });\n }\n this.props.context.telemetry.error(\n 'One or more required URL parameters are missing. ' +\n 'Please make sure you have pass in channelId, channelReferenceId and packingSlipId through URL parameter.'\n );\n return Promise.resolve();\n }\n\n const { additionalInformationKeys } = 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 );\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.\n * All rights reserved. See LICENSE 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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCatalogId } from '@msdyn365-commerce/core';\nimport { ProductComparisonItem, ProductComparisonState } from '../product-comparison-state';\nimport { IProductComparisonButtonProps } from './product-comparison-button.props.autogenerated';\n\n/**\n * Represents product comparison view props.\n */\nexport interface IProductComparisonButtonViewProps extends IProductComparisonButtonProps<{}> {\n moduleProps: IModuleProps;\n productComparisonButton?: React.ReactNode;\n productComparisonPreview?: React.ReactNode;\n}\n\n/**\n * Represents the data which is required for the product comparison button to be rendered.\n */\nexport interface IProductComparisonButtonData {}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonFullProps extends IProductComparisonButtonProps {\n product: ProductSearchResult | SimpleProduct;\n catalogId: number;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonState {\n canProductBeAddedToProductComparison: boolean;\n currentProductsCount: number;\n comparisonItemId: string;\n}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductComparisonButton extends React.PureComponent {\n private static _productComparisonPreview?: React.ReactNode;\n\n private readonly _className: string;\n\n private readonly _instanceId: string;\n\n private readonly _shouldUsePreview: boolean;\n\n private static _renderProductComparisonPreview(props: IProductComparisonButtonFullProps): React.ReactNode {\n if (!ProductComparisonButton._productComparisonPreview && ArrayExtensions.hasElements(props.slots.productComparisonPreview)) {\n ProductComparisonButton._productComparisonPreview = props.slots.productComparisonPreview[0];\n }\n\n return ProductComparisonButton._productComparisonPreview;\n }\n\n private static _renderProductComparisonButton(\n className: string,\n buttonText: string | undefined,\n title: string,\n onClickHandler?: () => void\n ): React.ReactNode {\n const isDisabled = ObjectExtensions.isNullOrUndefined(onClickHandler);\n let content: React.ReactNode;\n if (buttonText) {\n content = (\n <>\n
\n
{buttonText}
\n \n );\n }\n return (\n \n );\n }\n\n public constructor(props: IProductComparisonButtonFullProps) {\n super(props);\n\n this._className = 'ms-product-comparison-button';\n this._instanceId = `${this._className}-${this.props.id}-${Random.Guid.generateGuid()}`;\n\n this.state = this._getNewState();\n\n this._shouldUsePreview = !ProductComparisonButton._productComparisonPreview;\n ProductComparisonButton._renderProductComparisonPreview(this.props);\n }\n\n public componentDidMount(): void {\n ProductComparisonState.instance(this.props.context.request).listModifiedEvent.subscribe({\n instanceId: this._instanceId,\n\n /**\n * Updates the state in case the state for the particular product was changed.\n */\n handler: () => {\n this.setState(this._getNewState());\n }\n });\n }\n\n public getSnapshotBeforeUpdate(previousProps: Readonly): void {\n if (previousProps.product.RecordId !== this.props.product.RecordId || previousProps.catalogId !== this.props.catalogId) {\n this.setState(this._getNewState());\n }\n }\n\n public componentWillUnmount(): void {\n ProductComparisonState.instance(this.props.context.request).listModifiedEvent.unsubscribe(this._instanceId);\n }\n\n public render(): React.ReactNode | null {\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n if (!isConsentGiven) {\n return null;\n }\n\n const viewProps: IProductComparisonButtonViewProps = {\n ...this.props,\n moduleProps: {\n moduleProps: this.props,\n className: this._className\n }\n };\n\n if (this._shouldUsePreview) {\n viewProps.productComparisonPreview = ProductComparisonButton._productComparisonPreview;\n }\n\n const buttonClassName = this.props.config.shouldDisplayText ? `${this._className}__button` : `${this._className}__icon`;\n\n if (!this.state.canProductBeAddedToProductComparison) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.removeFromComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n classnames(`${buttonClassName}__removing`, buttonClassName),\n buttonText,\n this.props.resources.removeFromComparisonButtonText,\n this._removeFromProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n const productsLimit = this._getProductsLimit();\n if (!ObjectExtensions.isNullOrUndefined(productsLimit) && productsLimit <= this.state.currentProductsCount) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonLimitReachedButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonLimitReachedButtonText\n );\n return this.props.renderView(viewProps);\n }\n\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonButtonText,\n this._addToProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n private _getProductsLimit(): number | undefined | null {\n const viewport = isMobile({ variant: VariantType.Browser, context: this.props.context.request });\n if (viewport === 'xs' || viewport === 'sm') {\n return this.props.context.app.config.productComparisonMobileProductsLimit;\n }\n return this.props.context.app.config.productComparisonDesktopProductsLimit;\n }\n\n /**\n * Adds current product to a product comparison list.\n */\n private readonly _addToProductComparison: () => void = () => {\n const item = new ProductComparisonItem(this.props.product.RecordId, this.props.catalogId);\n ProductComparisonState.instance(this.props.context.request).addItem(item);\n };\n\n /**\n * Removes current product from the product comparison list where it was added earlier.\n */\n private readonly _removeFromProductComparison: () => void = () => {\n ProductComparisonState.instance(this.props.context.request).removeItemById(this.state.comparisonItemId);\n };\n\n private _getProdutComparisonDataByCatalogId(): ProductComparisonItem[] {\n const items = ProductComparisonState.instance(this.props.context.request).items;\n const catalogId = getCatalogId(this.props.context.request);\n const productByCatalogId = items?.filter(product => product.catalogId === catalogId) ?? [];\n return productByCatalogId;\n }\n\n /**\n * Retrieves the state of the component based on the comparison data.\n * @returns State object for the component.\n */\n private readonly _getNewState: () => IProductComparisonButtonState = () => {\n const comparisonItemId = ProductComparisonItem.getItemId(this.props.product.RecordId, this.props.catalogId);\n const products = this._getProdutComparisonDataByCatalogId();\n return {\n comparisonItemId,\n canProductBeAddedToProductComparison: !ProductComparisonState.instance(this.props.context.request).hasItemById(\n comparisonItemId\n ),\n currentProductsCount: products.length\n };\n };\n}\n\nexport default ProductComparisonButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\nimport { KeyCodes } from '@msdyn365-commerce-modules/utilities';\n\nexport interface ISearchBarProps {\n className: string;\n searchPlaceholderLabel: string;\n onSearch(searchText: string): void;\n}\n\nexport interface ISearchBarState {\n searchText: string;\n}\n\nexport class SearchBar extends React.Component {\n constructor(props: ISearchBarProps) {\n super(props);\n this.state = {\n searchText: ''\n };\n }\n\n public render(): JSX.Element {\n const { className, searchPlaceholderLabel } = this.props;\n return (\n
\n \n
\n );\n }\n\n private readonly onSearchTextChange = (ev: React.ChangeEvent): void => {\n this.setState({\n searchText: ev.target.value\n });\n };\n\n private readonly onSearch = (): void => {\n this.props.onSearch(this.state.searchText);\n };\n\n private readonly handleKeyUp = (event: React.KeyboardEvent): void => {\n if (event.keyCode === KeyCodes.Enter) {\n this.onSearch();\n }\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { moduleClassName } from '../business-partners';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { SearchBar } from './search-bar';\n\n/**\n * Props of DataGrid component.\n */\nexport interface IDataGridProps extends IComponentProps {\n className: string;\n pageSize?: number;\n searchPlaceholderLabel: string;\n defaultSorting?: ISortingInfo;\n resources: IBusinessPartnersResources;\n columns: IDataGridColumn[];\n loadData(): Promise;\n}\n\n/**\n * State of DataGrid component.\n */\nexport interface IDataGridState {\n data: Tdata[];\n paging: IPagingInfo;\n filter: IFilterInfo;\n sorting?: ISortingInfo;\n isLoading: boolean;\n hasError: boolean;\n}\n\nexport interface IPagingInfo {\n index: number;\n}\n\nexport interface IFilterInfo {\n searchText: string;\n}\n\nexport interface ISortingInfo {\n fieldName: string;\n ascending: boolean;\n}\n\n/**\n * Column definition of DataGrid component.\n */\nexport interface IDataGridColumn {\n /**\n * A unique key for identifying the column.\n */\n reactKey: string;\n\n /**\n * Name to render on the column header.\n */\n name: string;\n\n /**\n * Class name added to table cell.\n */\n className?: string;\n\n /**\n * The field to pull the text value from for the column.Can be unset if a custom `onRender` method is provided.\n */\n fieldName?: string;\n\n /**\n * Whether the user can search this column by text.\n */\n isSearchable?: boolean;\n\n /**\n * Custom renderer for cell content, instead of the default text rendering.\n */\n onRender?(item: Tdata): JSX.Element;\n}\n\nconst defaultPageSize = 10;\n\n/**\n * DataGrid component encapsulates common table functionalities.\n */\nexport class DataGrid extends React.Component, IDataGridState> {\n constructor(props: IDataGridProps) {\n super(props);\n this.state = {\n data: [],\n sorting: props.defaultSorting,\n paging: { index: 0 },\n filter: { searchText: '' },\n isLoading: true,\n hasError: false\n };\n }\n\n public componentDidMount(): void {\n this.loadDataInternal();\n }\n\n public shouldComponentUpdate(nextProps: Readonly>, nextState: Readonly>): boolean {\n return (\n this.props.id !== nextProps.id ||\n this.props.columns !== nextProps.columns ||\n this.state.data !== nextState.data ||\n this.state.paging !== nextState.paging ||\n this.state.filter !== nextState.filter ||\n this.state.isLoading !== nextState.isLoading ||\n this.state.hasError !== nextState.hasError\n );\n }\n\n public render(): JSX.Element | null {\n const data = this.getDataToDisplay();\n const hasMore = this.hasMore();\n if (this.state.hasError) {\n return {this.props.resources.genericErrorMessage};\n }\n if (this.state.isLoading) {\n return {this.props.resources.loadingLabel};\n }\n if (!ArrayExtensions.hasElements(data)) {\n return (\n <>\n \n

{this.props.resources.noDataMessage}

\n \n );\n }\n return (\n <>\n \n \n {this.renderGridHeader()}\n {data.map((item, index) => this.renderGridRow(item, index))}\n
\n {hasMore && (\n \n )}\n \n );\n }\n\n /**\n * Renders the TH header in the table.\n * @returns - Header react node.\n */\n private readonly renderGridHeader = () => {\n const className = `${this.props.className}__header`;\n const rowClassName = `${className}__row`;\n return (\n \n \n {this.props.columns.map(column => (\n \n {column.name}\n \n ))}\n \n \n );\n };\n\n /**\n * Renders table row.\n * @param item - Data item for this row.\n * @param index - Index of the row.\n * @returns - Row react node.\n */\n private readonly renderGridRow = (item: Tdata, index: number) => {\n const rowClassName = `${this.props.className}__row`;\n return (\n \n {this.props.columns.map(column => {\n if (column.fieldName) {\n return (\n \n {((item as unknown) as { [key: string]: string })[column.fieldName]}\n \n );\n }\n return {column.onRender?.(item)};\n })}\n \n );\n };\n\n /**\n * Load data for the table.\n * @returns Promise.\n */\n private readonly loadDataInternal = async () => {\n if (!this.props.context.actionContext.requestContext.user.isAuthenticated) {\n this.setState({\n isLoading: false\n });\n return;\n }\n try {\n const result = await this.props.loadData();\n this.setState({\n isLoading: false,\n data: result\n });\n } catch {\n this.setState({\n isLoading: false,\n hasError: true\n });\n }\n };\n\n private readonly onSearch = (searchText: string): void => {\n this.setState({\n paging: { index: 0 },\n filter: { searchText }\n });\n };\n\n private readonly loadMore = (): void => {\n this.setState({\n paging: { index: this.state.paging.index + 1 }\n });\n };\n\n private readonly sortData = (): Tdata[] => {\n const sorting = this.state.sorting;\n if (!sorting) {\n return this.state.data;\n }\n const { fieldName, ascending } = sorting;\n return this.state.data.sort((item1: Tdata, item2: Tdata) => {\n let value1 = ((item1 as unknown) as { [key: string]: string })[fieldName];\n let value2 = ((item2 as unknown) as { [key: string]: string })[fieldName];\n if (typeof value1 === 'string' && typeof value2 === 'string') {\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n }\n const compareResult = value1 > value2 ? 1 : value1 < value2 ? -1 : 0;\n return ascending ? compareResult : compareResult * -1;\n });\n };\n\n private readonly filterData = (): Tdata[] => {\n const column = this.props.columns.find(c => c.isSearchable);\n const searchText = this.state.filter.searchText;\n return this.sortData().filter(item => {\n if (!column?.fieldName || !searchText) {\n return true;\n }\n const columnValue = ((item as unknown) as { [key: string]: string })[column.fieldName];\n return columnValue && columnValue.toLowerCase().indexOf(searchText.trim().toLowerCase()) >= 0;\n });\n };\n\n private readonly getDataToDisplay = (): Tdata[] => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.slice(0, itemsCount);\n };\n\n private readonly hasMore = (): boolean => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.length > itemsCount;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { BusinessPartner, BusinessPartnerUser, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * View model of business partner user, used to display.\n */\nexport interface IBusinessPartnerUserViewModel extends BusinessPartnerUser {\n name: string;\n spendingLimitStr: string;\n}\n\n/**\n * Props of BusinessPartnerUsersTable.\n */\nexport interface IBusinessPartnerUsersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n businessPartner: BusinessPartner;\n resources: IBusinessPartnersResources;\n onSelect(businessPartnerUser: BusinessPartnerUser): void;\n}\n\n/**\n * BusinessPartnerUsersTable component.\n */\nexport class BusinessPartnerUsersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessUserTableNameHeadingText,\n fieldName: 'name',\n isSearchable: true\n },\n {\n reactKey: 'email',\n name: this.props.resources.businessUserTableEmailHeadingText,\n fieldName: 'Email'\n },\n {\n reactKey: 'spendingLimit',\n name: this.props.resources.businessUserTableSpendingLimitHeadingText,\n className: `${this.props.className}__row__column-with-number`,\n fieldName: 'spendingLimitStr'\n },\n {\n reactKey: 'select-button',\n name: '',\n onRender: this.renderSelectButton,\n className: `${this.props.className}__row__column-select-button`\n }\n ];\n };\n\n /**\n * Renders the button to select a business partner user.\n * @param businessPartnerUser - The business partner user to select.\n * @returns - Button component.\n */\n private readonly renderSelectButton = (businessPartnerUser: IBusinessPartnerUserViewModel) => {\n return (\n {\n this.props.onSelect(businessPartnerUser);\n }}\n title={this.props.resources.select}\n aria-label={this.props.resources.select}\n />\n );\n };\n\n /**\n * Call retail proxy to get business partner users.\n * @returns - Business partner users view model.\n */\n private readonly getBusinessPartnerUsers = async (): Promise => {\n const businessPartners = await BusinessPartnersDataActions.getUsersAsync(\n {\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n },\n this.props.businessPartner.BusinessPartnerId\n );\n return businessPartners\n .filter(user => user.StatusValue === 1)\n .map(user => ({\n ...user,\n name: `${user.FirstName} ${user.LastName}`,\n spendingLimitStr: !ObjectExtensions.isNullOrUndefined(user.SpendingLimit)\n ? this.props.context.cultureFormatter.formatCurrency(user.SpendingLimit.toString())\n : ''\n }));\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { BusinessPartner, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * Props of IBusinessPartnersTable.\n */\nexport interface IBusinessPartnersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n resources: IBusinessPartnersResources;\n onSelect(businessPartner: BusinessPartner): void;\n}\n\n/**\n * BusinessPartnersTable component.\n */\nexport class BusinessPartnersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessPartnerName,\n fieldName: 'Name',\n isSearchable: true\n },\n {\n reactKey: 'select-button',\n name: '',\n onRender: this.renderSelectButton,\n className: `${this.props.className}__row__column-select-button`\n }\n ];\n };\n\n /**\n * Renders the button to select a business partner.\n * @param businessPartner - The business partner to select.\n * @returns - Button component.\n */\n private readonly renderSelectButton = (businessPartner: BusinessPartner) => {\n return (\n {\n this.props.onSelect(businessPartner);\n }}\n title={this.props.resources.select}\n aria-label={this.props.resources.select}\n />\n );\n };\n\n /**\n * Call retail proxy to get business partners.\n * @returns - Business partners.\n */\n private readonly getBusinessPartners = async () => {\n const businessPartners = await BusinessPartnersDataActions.getManagedBusinessPartnersAsync({\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n });\n return businessPartners;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { BusinessPartner, BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersData } from './business-partners.data';\nimport { IBusinessPartnersProps } from './business-partners.props.autogenerated';\nimport { BusinessPartnerUsersTable } from './components/business-partner-users-table';\nimport { BusinessPartnersTable } from './components/business-partners-table';\n\n/**\n * Props for the module view.\n */\nexport interface IBusinessPartnersViewProps extends IBusinessPartnersProps {\n businessPartnersProps: IModuleProps;\n businessPartnersHeading?: React.ReactNode;\n businessPartnersTable?: React.ReactNode;\n businessPartnerUsersTable?: React.ReactNode;\n backToBusinessPartnersLink?: React.ReactNode;\n}\n\n/**\n * State of BusinessPartners component.\n */\nexport interface IBusinessPartnersState {\n selectedBusinessPartner?: BusinessPartner;\n}\n\n/**\n * The class name root for the module.\n */\nexport const moduleClassName: string = 'ms-business-partners';\n\n/**\n * BusinessPartners component.\n */\nclass BusinessPartners extends React.Component, IBusinessPartnersState> {\n constructor(props: IBusinessPartnersProps) {\n super(props);\n this.state = {};\n }\n\n public componentDidMount() {\n this.props.context.request.cookies.removeAccountSelectionCookie();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessPartnersProps, nextState: IBusinessPartnersState): 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, pageSize, businessPartnersHeading }\n } = this.props;\n const viewProps: IBusinessPartnersViewProps = {\n ...this.props,\n businessPartnersProps: {\n moduleProps: this.props,\n className: classname(moduleClassName, className)\n },\n businessPartnersHeading: businessPartnersHeading && businessPartnersHeading.text && (\n \n ),\n businessPartnersTable: !this.state.selectedBusinessPartner ? (\n \n ) : (\n undefined\n ),\n businessPartnerUsersTable: this.state.selectedBusinessPartner ? (\n \n ) : (\n undefined\n ),\n backToBusinessPartnersLink: this.state.selectedBusinessPartner ? (\n {\n this.onSelectBusinessPartner();\n }}\n >\n {this.props.resources.backToBusinessPartnersLink}\n \n ) : (\n undefined\n )\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Event handler of business partner selection.\n * @param businessPartner - Selected business partner.\n */\n private readonly onSelectBusinessPartner = (businessPartner?: BusinessPartner) => {\n this.setState({\n selectedBusinessPartner: businessPartner\n });\n };\n\n /**\n * Event handler of business partner user selection.\n * @param businessPartnerUser - Selected business partner user.\n */\n private readonly onSelectBusinessPartnerUser = (businessPartnerUser: BusinessPartnerUser) => {\n if (businessPartnerUser.AccountNumber) {\n this.props.context.request.cookies.setAccountSelectionCookie(true, businessPartnerUser.AccountNumber);\n const homeUrl = Msdyn365.getUrlSync('home', this.props.context.actionContext);\n if (homeUrl && Msdyn365.msdyn365Commerce.isBrowser) {\n window.location.href = homeUrl;\n }\n }\n };\n}\n\nexport default BusinessPartners;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Payment waiting props.\n */\nexport interface IPaymentWaitingProps {\n message: string;\n className?: string;\n}\n\n/**\n * Payment waiting.\n * @param param0 - First in param.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const WaitingComponent: React.FC = ({ message, className = 'ms-checkout-payment-instrument' }) => (\n
\n \n {message}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE 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 { headerError, checkInForOrderPickup, confirmationComponent, viewState } = props;\n return (\n <>\n {viewState.isHeaderError && headerError}\n {!viewState.isHeaderError && ArrayExtensions.hasElements(props.config.additionalInformationKeys) && (\n \n )}\n {!viewState.isHeaderError &&\n !ArrayExtensions.hasElements(props.config.additionalInformationKeys) &&\n viewState.isCheckedIn &&\n confirmationComponent}\n \n );\n};\n\nexport default CheckInViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE 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 = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\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","import * as React from 'react';\r\nimport { ILinksData } from '../farmlands-promotion-block.props.autogenerated';\r\n\r\nexport interface IFarmlandsPromotionBlockButton {\r\n buttons: ILinksData[];\r\n}\r\n\r\nconst FarmlandsPromotionBlockButton: React.FC = ({ buttons }) => (\r\n <>\r\n {buttons.map((button: ILinksData, index: number) => {\r\n return (\r\n \r\n \r\n {button.linkText}\r\n \r\n
\r\n );\r\n })}\r\n \r\n);\r\n\r\nexport default FarmlandsPromotionBlockButton;\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 * IFarmlandsPromotionBlock 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 displayOnlyTo {\r\n all = 'all',\r\n loggedInOnly = 'loggedInOnly',\r\n loggedOutOnly = 'loggedOutOnly'\r\n}\r\n\r\nexport interface IFarmlandsPromotionBlockConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n paragraph?: Msdyn365.RichText;\r\n image?: Msdyn365.IImageData;\r\n links?: ILinksData[];\r\n displayOnlyTo: displayOnlyTo;\r\n className?: 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 ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IFarmlandsPromotionBlockProps extends Msdyn365.IModule {\r\n config: IFarmlandsPromotionBlockConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport FarmlandsPromotionBlockButton from './components/button';\r\nimport { IFarmlandsPromotionBlockProps, displayOnlyTo } from './farmlands-promotion-block.props.autogenerated';\r\n\r\nexport interface IContentBlockViewProps extends IFarmlandsPromotionBlockProps<{}> {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n buttons?: React.ReactNode;\r\n className?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer: INodeProps;\r\n detailsContainer: INodeProps;\r\n buttonsContainer: INodeProps;\r\n shouldShowModule: boolean;\r\n}\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass ContentBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph, image, links, displayOnlyTo, className } = this.props.config;\r\n const contentBlockTitle = heading && heading.text && (\r\n \r\n );\r\n const contentBlockText = paragraph && (\r\n \r\n );\r\n const contentBlockImage = image && (\r\n {image.altText}\r\n );\r\n const contentBlockButtons = links && ;\r\n const imageContainer = { className: 'farmlands-promotion-block__image-container' };\r\n const detailsContainer = { className: 'farmlands-promotion-block__details' };\r\n const buttonsContainer = { className: 'farmlands-promotion-block__buttons' };\r\n const isLoggedIn = this.props.context.request.user.isAuthenticated;\r\n const shouldShowModule = this._shouldShowTo(isLoggedIn, displayOnlyTo);\r\n if (!contentBlockTitle && !contentBlockText) {\r\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const contentBlockviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n buttons: contentBlockButtons,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n className: classnames('farmlands-promotion-block', className)\r\n },\r\n imageContainer: imageContainer,\r\n detailsContainer: detailsContainer,\r\n buttonsContainer: buttonsContainer,\r\n shouldShowModule: shouldShowModule\r\n };\r\n\r\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\r\n }\r\n\r\n private _shouldShowTo = (isLoggedIn: boolean, displayTo: displayOnlyTo): boolean => {\r\n if (isLoggedIn && displayTo === displayOnlyTo.loggedOutOnly) {\r\n return false;\r\n } else if (!isLoggedIn && displayTo === displayOnlyTo.loggedInOnly) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n}\r\n\r\nexport default ContentBlock;\r\n","import { Cart, CommerceProperty } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g.d';\r\n\r\nenum ePropsValue {\r\n String = 'STRING',\r\n Integer = 'INTEGER',\r\n Boolean = 'BOOLEAN',\r\n Decimal = 'DECIMAL'\r\n}\r\n\r\ntype ExtensionPropsValue = ePropsValue.Boolean | ePropsValue.Integer | ePropsValue.String | ePropsValue.Decimal | null;\r\n\r\nconst IS_BUSINESS_ACCOUNT_KEY = 'IsBusinessAccount';\r\nconst CUST_HOLD_STATUS_KEY = 'CustHoldStatus';\r\nconst CUST_ACCOUNT_STATUS_KEY = 'CustAccountStatus';\r\n\r\n\r\nconst isShareholder = (cart: Cart): boolean => {\r\n console.log(cart)\r\n const { CustomerId, ExtensionProperties } = cart;\r\n const isBusinessAccountProperty = ExtensionProperties!.find((prop: CommerceProperty) => prop.Key === IS_BUSINESS_ACCOUNT_KEY);\r\n if (CustomerId !==undefined)\r\n {\r\n return CustomerId !== null && CustomerId!.length > 0 && ((isBusinessAccountProperty && isBusinessAccountProperty?.Value?.BooleanValue) || false);\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n};\r\n\r\nconst isCasual = (cart: Cart): boolean => {\r\n const { CustomerId, ExtensionProperties } = cart;\r\n const isBusinessAccountProperty = ExtensionProperties!.find((prop: CommerceProperty) => prop.Key === IS_BUSINESS_ACCOUNT_KEY);\r\n if (CustomerId !==undefined)\r\n {\r\n return CustomerId !== null && CustomerId!.length > 0 && ((isBusinessAccountProperty && !(isBusinessAccountProperty?.Value?.BooleanValue)) || false);\r\n }\r\n else{\r\n return false;\r\n }\r\n};\r\n\r\nconst isGuest = (cart: Cart): boolean => {\r\n const { CustomerId } = cart;\r\n if (CustomerId !==undefined)\r\n {\r\n return !(CustomerId!.length > 0);\r\n }\r\n else{\r\n return true;\r\n }\r\n\r\n};\r\n\r\nconst findExtensionProperty = (ExtensionProperties: CommerceProperty[], key: string): CommerceProperty | undefined => {\r\n return ExtensionProperties.find((prop: CommerceProperty) => prop.Key === key);\r\n};\r\n\r\n// CustHoldStatus for the customer is not set to \"Tax invoice\" or \"All\"\r\nconst isShareholderAccountNotOnHold = (ExtensionProperties: CommerceProperty[]): boolean => {\r\n const custHoldStatusProp = findExtensionProperty(ExtensionProperties, CUST_HOLD_STATUS_KEY);\r\n const onHoldStatus = custHoldStatusProp ? custHoldStatusProp.Value!.StringValue! : '';\r\n return !['Tax invoice', 'All'].includes(onHoldStatus);\r\n};\r\n\r\n// CustAccountStatus for the customer is set to \"Active\" or \"Monitored\"\r\nconst isShareholderAccountNotInactive = (ExtensionProperties: CommerceProperty[]): boolean => {\r\n const custAccountStatusProp = findExtensionProperty(ExtensionProperties, CUST_ACCOUNT_STATUS_KEY);\r\n const accountStatus = custAccountStatusProp ? custAccountStatusProp.Value!.StringValue! : '';\r\n return ['Active', 'Monitored'].includes(accountStatus);\r\n};\r\n\r\n// CustAccountStatus for the customer is set to \"Off-boarding\" or \"Suspended\"\r\nconst isShareholderAccountDisabled = (ExtensionProperties: CommerceProperty[]): boolean => {\r\n const custAccountStatusProp = findExtensionProperty(ExtensionProperties, CUST_ACCOUNT_STATUS_KEY);\r\n const accountStatus = custAccountStatusProp ? custAccountStatusProp.Value!.StringValue! : '';\r\n return ['Off-boarding', 'Suspended'].includes(accountStatus);\r\n};\r\n\r\n// CustAccountStatus for the customer is set to specifically to \"Inactive\"\r\nconst isShareholderAccountInactive = (ExtensionProperties: CommerceProperty[]): boolean => {\r\n const custAccountStatusProp = findExtensionProperty(ExtensionProperties, CUST_ACCOUNT_STATUS_KEY);\r\n const accountStatus = custAccountStatusProp ? custAccountStatusProp.Value!.StringValue! : '';\r\n return ['Inactive'].includes(accountStatus);\r\n};\r\n\r\nconst hasEcommerceAccess = (userContactDetails: any): boolean => {\r\n return userContactDetails?.CustomerAccounts.find((account: any) => account.IsActive === true).Permissions[0]?.Authorities.find(\r\n (prop: any) => prop.Authority === 'EcommerceAccess'\r\n );\r\n};\r\n\r\n/**\r\n * Get the value of an ExtensionProperty (EP)\r\n * @param extensionProperties The EP used to search for property\r\n * @param keyValue The key value to search\r\n * @param typeValue The type value to return\r\n * @returns The value from EP or EP Object if no typeValue is passed\r\n */\r\nconst getExtensionProperty = (extensionProperties: CommerceProperty[], keyValue: string, typeValue: ExtensionPropsValue = null): any => {\r\n const extensionProperty = extensionProperties.find((prop: CommerceProperty) => prop.Key === keyValue);\r\n\r\n if (typeValue === null || !extensionProperty) {\r\n return extensionProperty;\r\n }\r\n\r\n switch (typeValue) {\r\n case ePropsValue.String:\r\n return extensionProperty.Value!.StringValue;\r\n case ePropsValue.Boolean:\r\n return extensionProperty.Value!.BooleanValue;\r\n case ePropsValue.Integer:\r\n return extensionProperty.Value!.IntegerValue;\r\n case ePropsValue.Decimal:\r\n return extensionProperty.Value!.DecimalValue;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nconst isValidColour = (str: string | undefined): string | void => {\r\n if (str === undefined || str.match(/^#[a-f0-9]{6}$/i) === null) {\r\n return;\r\n }\r\n return str;\r\n};\r\n\r\nexport {\r\n isShareholder,\r\n isCasual,\r\n isGuest,\r\n isShareholderAccountNotInactive,\r\n isShareholderAccountDisabled,\r\n isShareholderAccountInactive,\r\n isShareholderAccountNotOnHold,\r\n hasEcommerceAccess,\r\n ePropsValue,\r\n getExtensionProperty,\r\n isValidColour\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductComparisonButtonViewProps } from './product-comparison-button';\n\n/**\n * Represents product comparison button view.\n * @param props - View props for product comparison button.\n * @returns Functional component of product comparison button.\n */\nexport const ProductComparisonButtonViewFunctionalComponent: React.FC = props => {\n const { productComparisonButton, productComparisonPreview } = props;\n\n return (\n \n {productComparisonButton}\n {productComparisonPreview}\n \n );\n};\n\nexport default ProductComparisonButtonViewFunctionalComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IBreadcrumbViewProps } from './farmlands-breadcrumb';\r\n\r\nconst BreadCrumbView: React.FC = props => {\r\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\r\n if (!root && !links && !backButton) {\r\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n {root &&\r\n \r\n {root}\r\n {links && separator}\r\n }\r\n {backButton &&\r\n \r\n {backButton}\r\n }\r\n {links && links.map((link, index) => (\r\n \r\n \r\n {link}\r\n {links[index + 1] && separator}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default BreadCrumbView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } 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 { IAccountProfileEditConfig, IAccountProfileEditProps } 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 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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\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(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): 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 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 // eslint-disable-next-line @typescript-eslint/naming-convention\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(\n (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 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(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\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\nexport default AccountProfileEdit;\n"],"sourceRoot":""}