{"version":3,"sources":["webpack:///src/modules/store-selector/store-selector.view.tsx?b873","webpack:///src/modules/fabrikam/views/reviews-list.view.tsx?39a2","webpack:///./src/modules/product-attributes/product-attributes.tsx?4f2a","webpack:///./src/modules/pdp-attributes/pdp-attributes.tsx?94a0","webpack:///./src/modules/shipping-map/shipping-map.data-states.ts?1152","webpack:///src/modules/store-selector/components/pickup-option-list.tsx?9a9c","webpack:///src/modules/store-selector/components/store-selector-location-line-item/date-time-helpers.ts?89f3","webpack:///src/modules/store-selector/components/store-selector-location-line-item/store-selector-location-line-item.components.tsx?5a50","webpack:///src/modules/store-selector/components/store-selector-location-lines.tsx?0668","webpack:///src/modules/store-selector/components/store-selector-search-form.tsx?1a99","webpack:///src/modules/store-selector/components/store-selector-small-components.tsx?c26d","webpack:///src/modules/store-selector/store-selector.tsx?ce13","webpack:///./src/Utilities/elicit-savings-calculation.tsx?adc6","webpack:///./src/components/call-to-action.tsx?535d","webpack:///./src/modules/add-to-cart-by-url/add-to-cart-by-url.tsx?e2cd","webpack:///src/modules/business-organization-list/business-organization-list.view.tsx?8701","webpack:///./src/modules/shipping-popup/shipping-popup.tsx?9b38","webpack:///src/modules/business-organization-list/components/small-components.tsx?104e","webpack:///src/modules/business-organization-list/business-organization-list.tsx?b6f5","webpack:///./src/modules/subscription-restriction-button/subscription-restriction-button.view.tsx?277c","webpack:///src/modules/account-profile-edit/account-profile-edit.view.tsx?72b7","webpack:///./src/modules/subscriptions-minicart/components/cart-display.component.tsx?2f3a","webpack:///./src/Utilities/smwe-order-summary-shipment-calculation.tsx?9ab2","webpack:///./src/themes/fth/views/accordion-item.view.tsx?9634","webpack:///src/modules/account-customer-balance/components/account-statement-request-modal.tsx?cf6e","webpack:///src/modules/account-customer-balance/components/account-actions.tsx?bbe9","webpack:///src/modules/account-customer-balance/components/index.tsx?9c6a","webpack:///src/modules/account-customer-balance/account-customer-balance.tsx?da17","webpack:///./src/modules/subscription-restriction-button/components/links.tsx?3fb8","webpack:///./src/modules/subscription-restriction-button/subscription-restriction-button.tsx?1fe3","webpack:///./src/modules/shipping-popup/shipping-popup.view.tsx?aa8b","webpack:///./src/themes/stemichelle-new/views/accordion-item.view.tsx?1391","webpack:///src/modules/account-customer-balance/account-customer-balance.view.tsx?35d2","webpack:///src/modules/account-profile-edit/components/account-profile-edit-button.tsx?8f71","webpack:///src/modules/account-profile-edit/components/account-profile-edit-error.tsx?a0b2","webpack:///src/modules/account-profile-edit/components/account-profile-edit-input.tsx?3bba","webpack:///src/modules/account-profile-edit/components/account-profile-edit-label.tsx?505c","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?e178","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?2c6f","webpack:///src/modules/account-profile-edit/account-profile-edit.tsx?a9d6"],"names":["StoreSelectorView","props","BodyContainerProps","FooterContainerProps","HeaderContainerProps","HeaderProps","ModuleProps","locationsMessage","search","state","spinner","locationsList","noLocationsMessage","terms","React","Module","Object","Node","isSearchInProgress","buildReviewCard","cardProps","headerProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","moduleProps","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","ReviewsListview","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","length","isFilterApplied","map","review","ProductAttributes","constructor","_productAttributeFactSheetURL","_productAttributeFactSheetHeader","_productAttributeTastingNotes","_productAttributeCookbookDescription","_productAttributeCookbookDescriptionHeader","_productAttributeFoodPairings","_productAttributeWineAnalysis","_productAttributeWineBlend","_productAttributeWineAging","_productAttributeWineAlcohol","_productAttributeWinePH","_productAttributeWineTA","_productAttributeWineF","render","content","this","data","productSpecificationData","result","className","_renderProductAttributes","product","filter","locale","get","_compareStrings","productattribute","attribute","Name","toUpperCase","TextValue","tabIndex","CallToAction","title","color","href","layout","_renderWineAttributes","Heading","headingTag","text","attributeHeading","RichTextComponent","suffix","toLowerCase","attributeValue","_renderProductCell","keyName","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","telemetry","warning","CurrencyValue","undefined","CurrencyCode","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","BooleanValue","string1","string2","ignoreCase","useLocale","toLocaleLowerCase","PdpAttributes","super","_attributesCollected","simpleProductData","productData","_parser","CommerceAttributesParser","attributeValues","psuedoAttributeValues","_getPsuedoSimpleAttributes","attributes","_attributesListRender","children","every","element","config","cssClass","simpleProduct","attributeArray","attr","attributeName","push","pos","key","_renderAttribute","cmsAttribute","renderPosition","_parseAttribute","value","type","toString","startsWith","_urlRender","_plaintextRender","_dateRender","_booleanRender","textDisplay","suffixText","_renderCell","Date","bool","booleanDisplay","url","labelOverride","openInNewTab","cellBody","attributeClass","noLabel","dataStates","PickUpOptionList","_onSelect","async","e","preventDefault","deliveryCode","currentTarget","getAttribute","onChange","_rendeDeliveryOptions","bind","_pickupListOptionMenu","expandSiteOptions","pickupListOptionMenuText","pickupmodeList","onClick","role","ref","delivery","Code","Description","expandSiteOptionsState","setState","secondsToTime","seconds","hours","Math","floor","ampm","divisorForMinutes","minutes","getShortTimeString","day","resources","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","getFullTimeString","mondayFull","tuesdayFull","wednesdayFull","thursdayFull","fridayFull","saturdayFull","sundayFull","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","storeHours","dateForLookup","buildStoreHoursString","closedText","openFrom","openTo","StoreSelectorLocationLineItemComponentActions","onLocationSelected","deliveryMode","handlers","onSelected","location","onSetAsPreferredStore","OrgUnitNumber","onRemovePreferredStore","renderStoreHours","RegularStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","buildStoreHours","displayTime","storeOpenFrom","OpenFrom","storeOpenTo","OpenTo","matchDeliveryOptions","productdeliveryOptions","storePickUpOptionList","deliveryOption","pickup","find","_delivery","StoreSelectorLocationLineItemComponent","hideStockStatus","isCurrentLocation","isInStock","stockStatusLabel","storeLocatorView","index","preferredStoreLocationId","isPreferredStoreEnabled","isLocationDisabled","telemetryContent","productPickUpOptionList","storeName","OrgUnitName","distanceAsString","distance","preferredDistanceUnit","buildDistanceString","Distance","storeAddress","Address","phoneNumber","contacts","allPhoneContacts","contact","ContactTypeValue","IsPrivate","primaryPhoneContact","IsPrimary","Locator","extractPhoneNumber","Contacts","resourceLabel","inStock","outOfStock","stockLabel","stockText","canSelectLocation","pickupInStoreButtonText","selectLocation","pickupInStoreAriaLabel","selectLocationAriaLabelFormat","replace","isPreferredStore","payLoad","getPayloadObject","TelemetryConstant","PickupInStore","getTelemetryAttributes","contentAction","etext","PreferredStore","preferredStoreAttr","RemovePreferredStore","RemovePreferredStoreAttr","deliveryOptionList","contactInfoHeader","storeHoursHeader","availabilityInfoHeader","currentLocation","preferredStoreAriaLabel","preferredStoreText","setAsPreferredStoreTextAriaLabel","setAsPreferredStoreText","StoreSelectorLocationLines","_scrollIntoView","selectedLocationDiv","selectedLocationRef","current","parent","parentElement","scrollTop","offsetTop","clientHeight","_isCurrentLocation","alreadySelectedLocation","_isProductInStock","ItemAvailabilities","enableOutOfStockCheck","AvailableQuantity","_stockInventoryLabel","availabilityWithHours","ProductInventoryInformation","i","OrgUnitAvailability","OrgUnitLocation","InventoryLocationId","InventLocationId","StockLevelLabel","_mapResources","contactText","timeText","availabilityText","storeHoursClosedText","outOfStockText","inStockText","selectedStoreLocationText","selectStoreText","selectStoreAriaFormatText","storeHoursMondayText","storeHoursTuesdayText","storeHoursWednesdayText","storeHoursThursdayText","storeHoursFridayText","storeHoursSaturdayText","storeHoursSundayText","storeHoursMondayFullText","storeHoursTuesdayFullText","storeHoursWednesdayFullText","storeHoursThursdayFullText","storeHoursFridayFullText","storeHoursSaturdayFullText","storeHoursSundayFullText","componentDidUpdate","prevProps","selectedStoreLocationId","componentDidMount","locations","_stores","_sortStores","classnames","show","displayList","store","_renderStoreLocation","orgUnitLocation","deliveryOptions","OrgUnitPickUpDeliveryModes","selected","StoreHours","DeliveryOptions","productPickUpDeliveryOptions","stores","__decorate","observable","observer","StoreSelectorSearchForm","searchBoxRef","_searchTextChanged","inputValue","target","searchTermChanged","_onSubmit","blur","performSearch","SearchStore","storeSearchAttributes","ShowAllStore","showAllStoreAttributes","ToggleMapView","toggleMapViewAttributes","searchButtonAriaLabel","searchPlaceholderText","seeAllStoresText","viewListText","viewMapText","id","isMapDisabled","showAllStores","locatorView","onShowAllStores","onToggleListMapViewState","toggleButtonText","autoComplete","onSubmit","searchInputAriaLabel","placeholder","StoreSelectorEmptyMessage","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","link","requestContext","onTextChange","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","Msdyn365","editProps","StoreSelectorFoundLocationsMessage","searchRadius","isSeeAllStore","storeCountMessage","milesShortText","storeCountMessageInKm","storeAllCountMessage","StoreSelector","handleLinkTextChange","event","termsOfServiceLink","handleHeadingChange","heading","_attachMapAutoSuggest","autoSuggestOptions","context","actionContext","channel","storeSelectorStateManager","isMapApiLoaded","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","countryCode","ChannelCountryRegionISOCode","AutosuggestManager","attachAutosuggest","_onSuggestionSelected","errorCallback","debug","credentials","BingMapsApiKey","_searchTermChanged","formattedSuggestion","_performSearch","_setPreferredStore","storeId","cookies","mode","storeLocations","availabilitiesWithHours","preferedStore","setPreferredStoreLocation","isConsentGiven","Latitude","Longitude","_removePreferredStore","clearPreferredStore","_setSelectedStore","setSelectedStoreLocationId","searchTerm","isSeeAllStoreValue","geoLocate","trim","_updateLocations","latitude","longitude","_getAndUpdateStoreLocation","style","isDialogOpen","navigator","geolocation","getCurrentPosition","position","coords","PERMISSION_DENIED","timeout","_closeDialog","closeDialog","_setOrgUnitStoreInformation","styleDefault","setOrgUnitStoreInformation","showMapViewLink","isDialog","orgUnitStoreInformation","Promise","resolve","catch","message","radius","lookupRadius","calRadius","distanceUnitValue","searchRadiusUnit","modeDefault","preferredStore","lat","long","lastInlineStoreLocation","lastInlineShownStoreInfo","setLastInlineStoreInfo","orgUnitLocationsInput","GetOrgUnitLocationsByAreaInput","orgUnitLocations","getOrgUnitLocationsByArea","input","GetFullAvailableInventoryNearbyInput","RecordId","getFullAvailableInventoryNearby","_onOrgUnitLocationSelected","getTelemetryObject","request","telemetryPageName","friendlyName","autoSuggestionEnabled","setTimeout","reaction","BingMapsEnabled","loadMapApi","lang","market","DefaultLanguageId","then","when","isSameContext","shouldComponentUpdate","nextProps","setAsPreferredStore","app","appConfig","inlineView","hideInventory","listMapViewState","showLocationView","isMapModuleLoaded","StoreSelectorActions","toggleListMapViewState","configHeading","storeLocatorHeaderText","storeSelectorHeaderText","kilometersShortText","viewProps","tag","Modal","classname","autoFocus","fade","isOpen","onClosed","horizontalPosition","verticalPosition","toggle","ModalHeader","onEdit","ModalFooter","ModalBody","outOfStockThreshold","enableStockCheck","StoreId","headerText","callbacks","selectedLocation","getAndUpdateUserLocation","attachMapAutoSuggest","onSuggestionSelected","setPreferredStore","removePreferredStore","setSelectedStore","renderView","calculateSavingPercentAmount","lines","total","forEach","line","Quantity","callToActionContent","glyphClassName","ctaLayout","glyphPosition","createInnerCTAFragment","glyph","callToActionClass","callToActionBaseClass","Button","disabled","AddToCartByUrl","errors","totalItems","isInProgress","productsToAdd","_getProductsToAdd","reduce","count","entry","quantity","_addItemsToCart","_inProgress","_renderCompletion","_renderCTA","query","add","split","isNaN","cartLink","_partialSuccess","_completeFailure","_completeSuccess","Waiting","inProgressText","completedSuccessfullyText","completedWithErrorsText","completeFailureText","itemList","promise","finally","CartUtilities","elicitAddItemIdToCart","recordId","amount","Error","BusinessFormItem","wrapper","label","errorMessage","BusinessUserForm","modalClassName","FormWrapper","modalHeading","modalDescription","inputs","buttons","item","button","_renderModal","BusinessUserDetails","selectedUser","FirstName","LastName","userFullName","keys","InputID","isModalOpen","headingSection","bodySection","footerSection","toggleModal","wrapClassName","applicationNode","BusinessOrganizationList","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","formType","formProps","_getForm","ShippingPopup","_modalState","_toggleModal","modalState","FormInput","pattern","maxLength","isRequired","isDisabled","required","GetMaxLength","FormLabel","forId","htmlFor","FormButton","FormFieldError","errorClassName","parsedMaxLength","parseInt","FormType","InputType","renderInputSection","onInputChange","customClass","maxChars","BusinessFormDefaultInputs","Text","businessUserFirstNameLabelText","businessUserLastNameLabelText","Email","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","moduleClassName","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","Add","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","window","reload","trace","addOrganizationUser","AddOrganizationUserInput","parseFloat","_handleFormCancelButton","None","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","user","_handleDeleteIcon","displayedUserData","TableDataType","Price","cultureFormatter","formatCurrency","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","_onInputChange","prev","refresh","isReady","_isFormReady","match","_formatPrice","price","_getCurrentUrl","reqContext","MsDyn365","isBrowser","URL","requestUrl","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","mobileExcludedColumns","Status","_viewport","_updateViewport","addEventListener","componentWillUnmount","removeEventListener","users","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","hasUsers","AddUser","addUserAttributes","status","errorProps","Table","_createTableProps","_renderUserForm","_renderUserDetails","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserDeleteButtonText","businessUserActionButtonText","businessUserPaginationAriaLabel","tableData","_createTableItems","headings","row","isMobile","includes","sortable","rows","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","minifyActions","excludedColumns","paginationProperty","skipCount","skip","itemPerPage","prevText","nextText","paginationText","actions","onDelete","onView","formatPrice","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","computed","ContentBlockView","contentBlockContainer","imageContainer","detailsContainer","links","image","hasFrequency","hasName","requireFrequency","requireName","shouldDisable","AccountProfileEditItem","AccountProfileEditLoading","icon","AccountProfileEditView","accountProfileEdit","viewState","loading","defaultAADConainer","aadConainer","accountProfileEditLocalAccount","isShowLoading","localAccount","items","buttonsWrapper","verificationSuccessModal","verificationSuccessModalMessage","LocalAccount","CartDisplayComponent","subscriptionsProps","subscriptionsMinicart__boxPrice","subscriptionsMinicart__shipping","subscriptionsMinicart__savings","subscriptionsMinicart__goToCart","cart","cartState","savingPercent","_cartFilteredLines","subscriptionLines","formatter","cartUrl","getUrlSync","_calculateDiscountedTotalAmount","_calculateTotalAmount","format","orderSummaryShipmentCalculation","filterCartLines","NetPrice","TotalAmount","CartOrderPriceGuide","NONSUBSCRIPTION_LE_3","NONSUBSCRIPTION_G_3","SUBSCRIPTION_LE_3","SUBSCRIPTION_GE_4_LE_5","SUBSCRIPTION_GE_6_AND_LE_11","SUBSCRIPTION_GE_12","GIFT_CARDS_ONLY","MIXED_ADD_PRICE","subscriptionCartLength","countCartLineAmountNoGiftCards","nonSubscriptionCartLength","orderSubscriptionBased","formatShipmentCalculation","cartLength","shipmentCalculationResult","summary","orderMixedBased","shipCostDefinition","_renderAccordionItemContent","AccordionItemView","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","document","getElementById","childElement","getElementsByClassName","hideAccordion","childElementCount","accordionItemContent","RequestStatementModal","email","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","max","min","ActionBar","onRequestStatement","requestStatementButtonLabel","AccountLabels","accountNumber","customerSincePrefix","createdOn","AccountValues","availableCredit","availableCreditLabel","CreditSummaryLabels","balanceOwed","creditExcess","CreditSummaryValues","BackButton","BackToShopping","AccountCustomerBalance","_showRequestStatementModal","isStatementRequestModalOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","customer","account","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","balanceOwedLabel","creditExcessLabel","AccountNumber","_formatJoinDate","CreatedDateTime","excess","Balance","CreditLimit","_formatCurrency","backLink","emailAddress","isB2BUser","IsB2B","accountLabels","accountValues","creditSummaryLabels","creditSummaryValues","homeButton","requestStatementModal","canSubmitStatementRequest","currency","currencyCode","toFixed","Intl","DateTimeFormat","month","year","ContentCardLinks","cta","btnClass","roleOption","rel","SubscriptionRestrictionButton","ExtensionProperties","forceUpdate","values","getSubscriptionValues","paragraph","contentBlockTitle","imageProps","imageSettings","contentBlockLinks","LinksComponent","contentBlockText","contentBlockImage","subscriptionRestrictionButtonViewProps","moduleClass","frequency","shippingPopup__shippingModalTitle","shippingPopup__shippingModalDescription","shippingPopup__shippingModalLegend","states","statesSettings","zIndex","slots","shippingButtonText","AccountProfileEditButton","AccountProfileEditError","AccountProfileEditInput","AccountProfileEditLabel","AccountProfileEditLoadingIcon","AccountProfileEditLoadingMessage","AccountProfileEdit","onTextBoxChange","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","assign","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","display","_renderLocalAccount","str","createElement","innerHTML","childNodes","nodeValue","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","showEmail","emailAddressLabelText","labelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent"],"mappings":"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","file":"static/js/10.596c9da09395329f5c41.chunk.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport { IStoreSelectorViewProps } from './store-selector';\n\nconst StoreSelectorView: React.FC = props => {\n const {\n BodyContainerProps,\n FooterContainerProps,\n HeaderContainerProps,\n HeaderProps,\n ModuleProps,\n // headerText,\n locationsMessage,\n search,\n state,\n spinner,\n locationsList,\n noLocationsMessage,\n terms } = props;\n\n return (\n \n \n {HeaderProps}\n \n \n {locationsMessage}\n {search}\n {state.isSearchInProgress ?\n spinner :\n <>\n {locationsList ? locationsList : noLocationsMessage}\n \n }\n \n \n {terms}\n \n \n );\n};\n\nexport default StoreSelectorView;\n","import { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { IReportReviewModalViewProps, IReviewCardViewProps, IReviewsListState, IReviewsListViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n { reviewCards.length === 0 ?\n null : \n {sortByDropdown}\n {filterByDropdown}\n \n }\n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n { reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n \n {state.reported ? props.headerSubmitted : props.header}\n \n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n \n );\n};\n\nexport default ReviewsListview;","/*---------------------------------------------------------------------------------------------\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\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\nimport * as React from 'react';\r\nimport CallToAction from './../../components/call-to-action';\r\nimport { IProductAttributesData } from './product-attributes.data';\r\nimport { IProductAttributesProps } from './product-attributes.props.autogenerated';\r\n\r\n/**\r\n *\r\n * ProductAttributes component\r\n * @extends {React.PureComponent>}\r\n */\r\n// @observer\r\nclass ProductAttributes extends React.PureComponent<\r\n IProductAttributesProps\r\n > {\r\n private _productAttributeFactSheetURL: string = 'FACT SHEET URL';\r\n private _productAttributeFactSheetHeader: string = 'DOWNLOAD FACTSHEET PDF';\r\n private _productAttributeTastingNotes: string = 'TASTING NOTES';\r\n private _productAttributeCookbookDescription: string = 'COOKBOOKDESCRIPTION';\r\n private _productAttributeCookbookDescriptionHeader: string = 'Description';\r\n private _productAttributeFoodPairings: string = 'FOOD PAIRINGS';\r\n private _productAttributeWineAnalysis: string = 'WINE ANALYSIS';\r\n private _productAttributeWineBlend: string = 'BLEND';\r\n private _productAttributeWineAging: string = 'AGING';\r\n private _productAttributeWineAlcohol: string = 'ALCOHOL';\r\n private _productAttributeWinePH: string = 'PH';\r\n private _productAttributeWineTA: string = 'TA';\r\n private _productAttributeWineF: string = 'F';\r\n\r\n public render(): JSX.Element | null {\r\n const content: IProductAttributesData = this.props.data;\r\n if (!(content && content.productSpecificationData && content.productSpecificationData.result)\r\n ) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {this._renderProductAttributes(\r\n content.productSpecificationData.result,\r\n this._productAttributeFactSheetURL\r\n )}\r\n {this._renderProductAttributes(\r\n content.productSpecificationData.result,\r\n this._productAttributeTastingNotes\r\n )}\r\n {this._renderProductAttributes(\r\n content.productSpecificationData.result,\r\n this._productAttributeCookbookDescription\r\n )}\r\n {this._renderProductAttributes(\r\n content.productSpecificationData.result,\r\n this._productAttributeFoodPairings\r\n )}\r\n {this._renderProductAttributes(\r\n content.productSpecificationData.result,\r\n this._productAttributeWineAnalysis\r\n )}\r\n
\r\n );\r\n }\r\n\r\n private _renderProductAttributes(\r\n product: AttributeValue[],\r\n filter: string\r\n ): JSX.Element | null {\r\n if (product && product.length) {\r\n const locale = get(this.props, 'context.request.locale', 'en-US');\r\n if (\r\n this._compareStrings(filter, this._productAttributeFactSheetURL, true, locale)\r\n ) {\r\n const productattribute = product.filter(\r\n attribute => attribute.Name!.toUpperCase() === filter.toUpperCase()\r\n );\r\n if (productattribute && productattribute.length && productattribute[0].TextValue) {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n } else if (this._compareStrings(filter, this._productAttributeWineAnalysis, true, locale)) {\r\n if (this._renderWineAttributes(product, this._productAttributeWineBlend)\r\n || this._renderWineAttributes(product, this._productAttributeWineAging)\r\n || this._renderWineAttributes(product, this._productAttributeWineAlcohol)\r\n || this._renderWineAttributes(product, this._productAttributeWinePH)\r\n || this._renderWineAttributes(product, this._productAttributeWineTA)\r\n || this._renderWineAttributes(product, this._productAttributeWineF)) {\r\n return (\r\n
\r\n \r\n {this._renderWineAttributes(product, this._productAttributeWineBlend)}\r\n {this._renderWineAttributes(product, this._productAttributeWineAging)}\r\n {this._renderWineAttributes(product, this._productAttributeWineAlcohol, '%')}\r\n {this._renderWineAttributes(product, this._productAttributeWinePH)}\r\n {this._renderWineAttributes(product, this._productAttributeWineTA)}\r\n {this._renderWineAttributes(product, this._productAttributeWineF)}\r\n
\r\n );\r\n }\r\n } else {\r\n const productattribute = product.filter(\r\n attribute => attribute.Name!.toUpperCase() === filter.toUpperCase()\r\n );\r\n if (productattribute && productattribute.length && productattribute[0].TextValue) {\r\n const attributeHeading = (filter === this._productAttributeCookbookDescription ? this._productAttributeCookbookDescriptionHeader : productattribute[0].Name);\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _renderWineAttributes(\r\n product: AttributeValue[],\r\n filter: string,\r\n suffix?: string\r\n ): JSX.Element | null {\r\n const productattribute = product.filter(\r\n attribute => attribute.Name!.toLowerCase() === filter.toLowerCase()\r\n );\r\n if (productattribute && productattribute.length && productattribute[0].TextValue) {\r\n const attributeValue = this._renderProductCell(productattribute[0], suffix);\r\n const keyName = `${productattribute[0].Name}:`;\r\n if (attributeValue !== null) {\r\n return (\r\n
\r\n \r\n
{attributeValue}
\r\n
\r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _renderProductCell(product: AttributeValue, suffix?: string): JSX.Element | null {\r\n switch (product.DataTypeValue) {\r\n case 0: // none\r\n // Return span here instead of null so the row still shows\r\n return ;\r\n case 1: // Currency\r\n return this._renderCurrencyCell(product, suffix);\r\n case 2: // DateTime\r\n return this._renderDateTimeCell(product, suffix);\r\n case 3: // Decimal\r\n return this._renderDecimalCell(product, suffix);\r\n case 4: // Integer\r\n return this._renderIntegerCell(product, suffix);\r\n case 5: // Text\r\n return this._renderTextCell(product, suffix);\r\n case 6: // TrueFalse\r\n return this._renderTrueFalseCell(product);\r\n case 40: // Video\r\n this.props.telemetry.warning(\r\n 'Got video specification type, not supported yet so skipping line'\r\n );\r\n return null;\r\n case 41: // Image\r\n this.props.telemetry.warning(\r\n 'Got image specification type, not supported yet so skipping line'\r\n );\r\n return null;\r\n default:\r\n this.props.telemetry.warning(\r\n `Got unknown specification type ${product.DataTypeValue} so skipping line`\r\n );\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCurrencyCell(product: AttributeValue, suffix?: string): JSX.Element | null {\r\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\r\n return (\r\n \r\n {product.CurrencyCode}\r\n {product.CurrencyValue}\r\n {suffix}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDateTimeCell(product: AttributeValue, suffix?: string): JSX.Element | null {\r\n if (\r\n product.DateTimeOffsetValue !== null &&\r\n product.DateTimeOffsetValue !== undefined &&\r\n product.DateTimeOffsetValue.toUTCString\r\n ) {\r\n return {product.DateTimeOffsetValue.toUTCString()}{suffix};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderIntegerCell(product: AttributeValue, suffix?: string): JSX.Element | null {\r\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\r\n return {product.IntegerValue}{suffix};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDecimalCell(product: AttributeValue, suffix?: string): JSX.Element | null {\r\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\r\n return {product.FloatValue}{suffix};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTextCell(product: AttributeValue, suffix?: string): JSX.Element | null {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\r\n if (product.BooleanValue) {\r\n return {'Yes'};\r\n } else {\r\n return {'No'};\r\n }\r\n }\r\n\r\n private _compareStrings(\r\n string1: string,\r\n string2: string,\r\n ignoreCase: boolean,\r\n useLocale: string\r\n ): boolean {\r\n if (ignoreCase) {\r\n if (useLocale) {\r\n string1 = string1.toLocaleLowerCase();\r\n string2 = string2.toLocaleLowerCase();\r\n } else {\r\n string1 = string1.toLowerCase();\r\n string2 = string2.toLowerCase();\r\n }\r\n }\r\n return string1 === string2;\r\n }\r\n}\r\n\r\nexport default ProductAttributes;\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\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { AttributeValue, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport CommerceAttributesParser, { CommerceValueTypes, ParsedValue } from '../../Utilities/commerce-attributes-parser';\r\nimport CallToAction from './../../components/call-to-action';\r\nimport { IPdpAttributesData } from './pdp-attributes.data';\r\nimport { IAttributesData, IPdpAttributesProps } from './pdp-attributes.props.autogenerated';\r\n\r\n/**\r\n * PdpAttributes class renders a preconfigured list of attributes related to the\r\n * currentproducts page.\r\n *\r\n * PdpAttributes component\r\n * @extends {React.Component>}\r\n */\r\nclass PdpAttributes extends React.Component> {\r\n private _parser: CommerceAttributesParser | undefined;\r\n private _attributesCollected: boolean = false;\r\n\r\n constructor(props: IPdpAttributesProps) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const simpleProductData = this.props.data.product.result;\r\n const productData: IPdpAttributesData = this.props.data;\r\n if (\r\n !(this.props.data.productSpecificationData && this.props.data.productSpecificationData.result) ||\r\n !(this.props.data.product && this.props.data.product.result)\r\n ) {\r\n return null;\r\n }\r\n\r\n if (!this._attributesCollected) {\r\n\r\n this._parser = new CommerceAttributesParser({\r\n attributeValues: productData.productSpecificationData.result,\r\n psuedoAttributeValues: this._getPsuedoSimpleAttributes(simpleProductData!)\r\n });\r\n }\r\n\r\n const attributes: [] = this._attributesListRender.props.children;\r\n if (attributes && attributes.every(element => element === null)) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {this._attributesListRender}\r\n
\r\n );\r\n }\r\n\r\n private _getPsuedoSimpleAttributes(simpleProduct: SimpleProduct): AttributeValue[] {\r\n const attributeArray: AttributeValue[] = [];\r\n\r\n this.props.config.attributes.map((attr) => {\r\n if (simpleProduct[attr.attributeName]) {\r\n attributeArray.push({\r\n Name: attr.attributeName,\r\n DataTypeValue: 5, // everything should work fine as a string\r\n TextValue: simpleProduct[attr.attributeName]\r\n });\r\n }\r\n });\r\n\r\n return attributeArray;\r\n }\r\n\r\n /**\r\n * returns JSX of the lists render\r\n */\r\n private get _attributesListRender(): JSX.Element {\r\n return (\r\n \r\n {this.props.config.attributes.map((attr, pos) => {\r\n return \r\n {this._renderAttribute(attr, pos)}\r\n ;\r\n })}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * returns JSX of a specific attribute render\r\n *\r\n * @param cmsAttribute attribute configured by author\r\n * @param renderPosition position to use for styling\r\n */\r\n private _renderAttribute(cmsAttribute: IAttributesData, renderPosition: number): JSX.Element | null {\r\n const attribute = this._parseAttribute(cmsAttribute.attributeName);\r\n // if attribute doesn't exist, if attribute exists but has no value\r\n if (!attribute || !attribute.value) { return null; }\r\n\r\n switch (attribute.type) {\r\n case 'STRING':\r\n // tslint:disable-next-line:no-http-string\r\n if (attribute.value.toString().startsWith('https://' || 'http://')) {\r\n return this._urlRender(attribute as ParsedValue, cmsAttribute);\r\n }\r\n return this._plaintextRender(attribute as ParsedValue, cmsAttribute, true);\r\n case 'NUMBER':\r\n return this._plaintextRender(attribute as ParsedValue, cmsAttribute);\r\n case 'CURRENCY':\r\n return this._plaintextRender(attribute as ParsedValue, cmsAttribute);\r\n case 'DATE':\r\n return this._dateRender(attribute as ParsedValue, cmsAttribute);\r\n case 'BOOLEAN':\r\n return this._booleanRender(attribute as ParsedValue, cmsAttribute);\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private _plaintextRender(text: ParsedValue, cmsAttribute: IAttributesData, richText: boolean = false): JSX.Element | null {\r\n const textDisplay = (richText)\r\n ? (\r\n \r\n ) : (\r\n {text.value}{cmsAttribute.suffixText || ''}\r\n );\r\n\r\n return this._renderCell(\r\n textDisplay,\r\n cmsAttribute\r\n );\r\n }\r\n\r\n private _dateRender(date: ParsedValue, cmsAttribute: IAttributesData): JSX.Element {\r\n return this._renderCell(\r\n {new Date(date.value!).toUTCString()}{cmsAttribute.suffixText},\r\n cmsAttribute\r\n );\r\n }\r\n\r\n private _booleanRender(bool: ParsedValue, cmsAttribute: IAttributesData): JSX.Element {\r\n const booleanDisplay = (bool.value) ? Yes : No;\r\n return this._renderCell(\r\n booleanDisplay,\r\n cmsAttribute\r\n );\r\n }\r\n\r\n private _urlRender(url: ParsedValue, cmsAttribute: IAttributesData): JSX.Element {\r\n return this._renderCell(\r\n \r\n \r\n ,\r\n cmsAttribute\r\n );\r\n }\r\n\r\n private _renderCell(cellBody: JSX.Element, cmsAttribute: IAttributesData): JSX.Element {\r\n let attributeName = cmsAttribute.attributeName;\r\n if (cmsAttribute.labelOverride) {\r\n attributeName = cmsAttribute.labelOverride;\r\n }\r\n return (\r\n
\r\n {!cmsAttribute.noLabel && {attributeName}}\r\n
\r\n {cellBody}\r\n
\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Parses and returns the attribute value queried\r\n *\r\n * @param name name of the attribute to get\r\n */\r\n private _parseAttribute(name: string): ParsedValue | undefined {\r\n return this._parser!.get(name);\r\n }\r\n}\r\n\r\nexport default PdpAttributes;\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\r\nexport enum dataStates {\r\n al = 'Alabama',\r\n ak = 'Alaska',\r\n az = 'Arizona',\r\n ar = 'Arkansas',\r\n ca = 'California',\r\n co = 'Colorado',\r\n ct = 'Connecticut',\r\n dc = 'District of Columbia',\r\n de = 'Delaware',\r\n fl = 'Florida',\r\n ga = 'Georgia',\r\n hi = 'Hawaii',\r\n id = 'Idaho',\r\n il = 'Illinois',\r\n in = 'Indiana',\r\n ia = 'Iowa',\r\n ks = 'Kansas',\r\n ky = 'Kentucky',\r\n la = 'Louisiana',\r\n me = 'Maine',\r\n md = 'Maryland',\r\n ma = 'Massachusetts',\r\n mi = 'Michigan',\r\n mn = 'Minnesota',\r\n ms = 'Mississippi',\r\n mo = 'Missouri',\r\n mt = 'Montana',\r\n ne = 'Nebraska',\r\n nv = 'Nevada',\r\n nh = 'New Hampshire',\r\n nj = 'New Jersey',\r\n nm = 'New Mexico',\r\n ny = 'New York',\r\n nc = 'North Carolina',\r\n nd = 'North Dakota',\r\n oh = 'Ohio',\r\n ok = 'Oklahoma',\r\n or = 'Oregon',\r\n pa = 'Pennsylvania',\r\n ri = 'Rhode Island',\r\n sc = 'South Carolina',\r\n sd = 'South Dakota',\r\n tn = 'Tennessee',\r\n tx = 'Texas',\r\n ut = 'Utah',\r\n vt = 'Vermont',\r\n va = 'Virginia',\r\n wa = 'Washington',\r\n wv = 'West Virginia',\r\n wi = 'Wisconsin',\r\n wy = 'Wyoming',\r\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\nimport * as React from 'react';\n\nexport interface IPickUpOptionListProps {\n pickupListOptionMenuText: string;\n pickupmodeList?: DeliveryOption[];\n onChange(deliveryCode: string): Promise;\n}\n\nexport interface IPickOptionListState {\n expandSiteOptions: boolean;\n}\n\n/**\n * Simple Pickup option dropdown with Button to get menu option\n */\nexport class PickUpOptionList extends React.PureComponent {\n private _pickupListOptionMenu: React.RefObject;\n\n constructor(props: IPickUpOptionListProps) {\n super(props);\n this._rendeDeliveryOptions = this._rendeDeliveryOptions.bind(this);\n this._pickupListOptionMenu = React.createRef();\n this.state= {\n expandSiteOptions:false\n };\n }\n\n public render(): JSX.Element {\n const {\n pickupListOptionMenuText,\n pickupmodeList\n } = this.props;\n\n return (\n
\n \n {this.state.expandSiteOptions? : null}\n
\n );\n }\n\n private _rendeDeliveryOptions():void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _onSelect = async (e: React.MouseEvent): Promise => {\n e.preventDefault();\n const deliveryCode = e.currentTarget.getAttribute('data-value');\n if(deliveryCode && deliveryCode.length > 0) {\n await this.props.onChange(deliveryCode);\n }\n }\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\nimport get from 'lodash/get';\nimport { IStoreSelectorLocationLineItemResources } from '.';\n\nexport interface IHoursDisplayInfo {\n startDayShort: string;\n startDayFull: string;\n endDayShort?: string;\n endDayFull?: string;\n timeRange: string;\n}\n\ninterface IHoursInfo {\n isClosed: boolean;\n openTime?: number;\n closeTime?: number;\n}\n\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\n\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\n if (seconds === undefined) {\n return undefined;\n } else {\n let hours = Math.floor(seconds / (60 * 60));\n const ampm = hours >= 12 ? 'pm' : 'am';\n hours = hours % 12;\n hours = hours ? hours : 12;\n const divisorForMinutes = seconds % (60 * 60);\n const minutes =\n Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\n return `${hours}:${minutes} ${ampm}`;\n }\n};\n\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\n switch (day) {\n case 'MON':\n return resources.days.monday;\n case 'TUE':\n return resources.days.tuesday;\n case 'WED':\n return resources.days.wednesday;\n case 'THU':\n return resources.days.thursday;\n case 'FRI':\n return resources.days.friday;\n case 'SAT':\n return resources.days.saturday;\n default: // case 'SUN':\n return resources.days.sunday;\n }\n};\n\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\n switch (day) {\n case 'MON':\n return resources.days.mondayFull;\n case 'TUE':\n return resources.days.tuesdayFull;\n case 'WED':\n return resources.days.wednesdayFull;\n case 'THU':\n return resources.days.thursdayFull;\n case 'FRI':\n return resources.days.fridayFull;\n case 'SAT':\n return resources.days.saturdayFull;\n default: // case 'SUN':\n return resources.days.sundayFull;\n }\n};\n\nconst buildHoursDisplayInfo = (startDay: DayType, endDay: DayType, hoursInfo: string, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo => {\n return {\n startDayShort: getShortTimeString(startDay, resources),\n startDayFull: getFullTimeString(startDay, resources),\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\n timeRange: hoursInfo\n };\n};\n\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\n if (firstLine.isClosed && secondLine.isClosed) {\n return true;\n }\n\n if (!firstLine.isClosed && !secondLine.isClosed) {\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\n }\n\n return false;\n};\n\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\n return {\n isClosed: get(storeHours, `IsClosedOn${dateForLookup}`, false),\n openTime: get(storeHours, `${dateForLookup}OpenTime`, undefined),\n closeTime: get(storeHours, `${dateForLookup}CloseTime`, undefined)\n };\n};\n\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\n if (hoursInfo.isClosed) {\n return resources.closedText;\n } else {\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\n\n return `${openFrom}–${openTo}`;\n }\n};\n\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\n const storeHoursList: IHoursDisplayInfo[] = [];\n\n const mondayHours = getStoreHoursData(storeHours, 'Monday');\n const tuesdayHours = getStoreHoursData(storeHours, 'Tuesday');\n const wednesdayHours = getStoreHoursData(storeHours, 'Wednesday');\n const thursdayHours = getStoreHoursData(storeHours, 'Thursday');\n const fridayHours = getStoreHoursData(storeHours, 'Friday');\n const saturdayHours = getStoreHoursData(storeHours, 'Saturday');\n const sundayHours = getStoreHoursData(storeHours, 'Sunday');\n\n let periodStart: DayType = 'MON';\n let periodEnd: DayType = 'MON';\n\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\n\n periodStart = 'TUE';\n }\n periodEnd = 'TUE';\n\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\n\n periodStart = 'WED';\n }\n periodEnd = 'WED';\n\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\n\n periodStart = 'THU';\n }\n periodEnd = 'THU';\n\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\n\n periodStart = 'FRI';\n }\n periodEnd = 'FRI';\n\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\n\n periodStart = 'SAT';\n }\n periodEnd = 'SAT';\n\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\n\n periodStart = 'SUN';\n }\n periodEnd = 'SUN';\n\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\n\n return storeHoursList;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport {\n DeliveryOption,\n OrgUnitContact,\n OrgUnitLocation,\n StoreHours\n} from '@msdyn365-commerce/retail-proxy';\nimport {PickUpOptionList} from '../pickup-option-list';\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './date-time-helpers';\n\nexport interface IStoreSelectorLocationLineItemResources {\n contactInfoHeader: string;\n storeHoursHeader: string;\n availabilityInfoHeader: string;\n\n closedText: string;\n\n outOfStock: string;\n inStock: string;\n\n currentLocation: string;\n selectLocation: string;\n selectLocationAriaLabelFormat: string;\n setAsPreferredStoreText: string;\n setAsPreferredStoreTextAriaLabel: string;\n preferredStoreText: string;\n preferredStoreAriaLabel: string;\n\n days: {\n monday: string;\n tuesday: string;\n wednesday: string;\n thursday: string;\n friday: string;\n saturday: string;\n sunday: string;\n mondayFull: string;\n tuesdayFull: string;\n wednesdayFull: string;\n thursdayFull: string;\n fridayFull: string;\n saturdayFull: string;\n sundayFull: string;\n };\n}\n\nexport interface IStoreSelectorLocationLineItemProps {\n location: OrgUnitLocation;\n storeHours?: StoreHours;\n\n hideStockStatus?: boolean;\n isInStock?: boolean;\n isCurrentLocation?: boolean;\n\n resources: IStoreSelectorLocationLineItemResources;\n stockStatusLabel?: string;\n storeLocatorView?: boolean;\n isPreferredStoreEnabled?: boolean;\n index: string;\n preferredStoreLocationId: string | null;\n storePickUpOptionList?: DeliveryOption[];\n productPickUpOptionList?: DeliveryOption[];\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n preferredDistanceUnit: string;\n isLocationDisabled?: boolean;\n handlers: {\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\n onSetAsPreferredStore(locationId: string | undefined): void;\n onRemovePreferredStore(): void;\n };\n}\n\nconst StoreSelectorLocationLineItemComponentActions = {\n onLocationSelected(props: IStoreSelectorLocationLineItemProps, deliveryMode?: string): void {\n props.handlers.onSelected(props.location, deliveryMode);\n },\n onSetAsPreferredStore(props: IStoreSelectorLocationLineItemProps): void {\n props.handlers.onSetAsPreferredStore(props.location.OrgUnitNumber);\n },\n onRemovePreferredStore(props: IStoreSelectorLocationLineItemProps): void {\n props.handlers.onRemovePreferredStore();\n }\n};\n\nconst renderStoreHours = (storeHours: StoreHours | undefined, location: OrgUnitLocation, resources: IStoreSelectorLocationLineItemResources): JSX.Element | null => {\n // First, use the store hours. This will allow listing day by day houts\n if (storeHours && storeHours.RegularStoreHours) {\n const storeHoursList: IHoursDisplayInfo[] = buildStoreHours(storeHours.RegularStoreHours, resources);\n\n return (\n
\n {storeHoursList.map(displayTime => (\n
\n {displayTime.endDayShort ? (\n
\n {displayTime.startDayShort}–\n {displayTime.endDayShort}\n
\n ) : (\n
\n {displayTime.startDayShort}\n
\n )}\n
{displayTime.timeRange}
\n
\n ))}\n
\n );\n } else {\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\n const storeOpenFrom: string | undefined = secondsToTime(location.OpenFrom);\n const storeOpenTo: string | undefined = secondsToTime(location.OpenTo);\n\n return (\n
\n {storeOpenFrom}-{storeOpenTo}\n
\n );\n }\n};\n\nconst buildDistanceString = (distance: number | undefined, preferredDistanceUnit: string, isLocationDisabled?: boolean): string | undefined => {\n if (distance === undefined || isLocationDisabled) {\n return undefined;\n } else if (distance < 1) {\n return `(<1 ${preferredDistanceUnit})`;\n } else {\n return `(${Math.floor(distance)} ${preferredDistanceUnit})`;\n }\n};\n\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\n if (!contacts) {\n return undefined;\n }\n\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\n\n if (allPhoneContacts && allPhoneContacts.length > 0) {\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\n\n if (primaryPhoneContact) {\n return primaryPhoneContact.Locator;\n }\n\n return allPhoneContacts[0].Locator;\n }\n\n return undefined;\n};\n\n// tslint:disable-next-line: max-func-body-length\nconst StoreSelectorLocationLineItem: React.FC = (props: IStoreSelectorLocationLineItemProps) => {\n const onClick = () => StoreSelectorLocationLineItemComponentActions.onLocationSelected(props);\n\n const onChange = async (deliveryCode: string): Promise => {\n StoreSelectorLocationLineItemComponentActions.onLocationSelected(props, deliveryCode);\n };\n\n const {\n hideStockStatus,\n isCurrentLocation,\n isInStock,\n location,\n resources,\n storeHours,\n stockStatusLabel,\n storeLocatorView,\n index,\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n isLocationDisabled,\n telemetryContent,\n storePickUpOptionList,\n productPickUpOptionList\n } = props;\n\n const storeName: string | undefined = location.OrgUnitName;\n const distanceAsString: string | undefined = buildDistanceString(location.Distance, props.preferredDistanceUnit, isLocationDisabled);\n const storeAddress: string | undefined = location.Address;\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\n\n const resourceLabel = isInStock ? resources.inStock : resources.outOfStock;\n const stockLabel = stockStatusLabel ? stockStatusLabel : undefined;\n const stockText: string | undefined = (hideStockStatus) ? undefined : (stockLabel ? stockLabel : resourceLabel);\n const canSelectLocation = hideStockStatus || isInStock;\n const pickupInStoreButtonText: string = resources.selectLocation;\n const pickupInStoreAriaLabel: string = resources.selectLocationAriaLabelFormat.replace('{StoreName}', storeName || '');\n const isPreferredStore = preferredStoreLocationId === location.OrgUnitNumber;\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\n const preferredStoreAttr = getTelemetryAttributes(telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\n const RemovePreferredStoreAttr = getTelemetryAttributes(telemetryContent!, payLoad);\n const deliveryOptionList = matchDeliveryOptions(productPickUpOptionList, storePickUpOptionList);\n\n const setAsPreferredStore = () => StoreSelectorLocationLineItemComponentActions.onSetAsPreferredStore(props);\n const removePreferredStore = () => StoreSelectorLocationLineItemComponentActions.onRemovePreferredStore(props);\n\n return (\n
\n
\n {storeLocatorView && {index}}\n {storeName}\n {distanceAsString ? {distanceAsString} : false}\n
\n
\n
\n

{resources.contactInfoHeader}

\n {storeAddress && (\n
\n \n {storeAddress}\n
\n )}\n {phoneNumber && (\n
\n \n {phoneNumber}\n
\n )}\n
\n
\n

{resources.storeHoursHeader}

\n {renderStoreHours(storeHours, location, resources)}\n
\n {\n !storeLocatorView &&\n
\n

{resources.availabilityInfoHeader}

\n {stockText &&

{stockText}

}\n {isCurrentLocation ?\n (\n

{resources.currentLocation}

\n ) : canSelectLocation ?\n deliveryOptionList.length === 0 ? (\n \n {pickupInStoreButtonText}\n \n ): \n : (\n false\n )\n }\n
\n }\n {\n isPreferredStoreEnabled ?\n isPreferredStore ?\n \n : \n : null\n }\n
\n
\n );\n};\n\nconst matchDeliveryOptions = (productdeliveryOptions: DeliveryOption[] | undefined,storePickUpOptionList: DeliveryOption[] | undefined): DeliveryOption[] => {\n const deliveryOption: DeliveryOption[] = [];\n productdeliveryOptions?.map(delivery => {\n const pickup =(storePickUpOptionList?.find(_delivery => _delivery.Code === delivery.Code));\n if(pickup) {\n deliveryOption.push(pickup);\n }\n });\n\n return deliveryOption;\n };\n\nexport const StoreSelectorLocationLineItemComponent = StoreSelectorLocationLineItem as (props: IStoreSelectorLocationLineItemProps) => JSX.Element;","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { DeliveryOption, ItemAvailability, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IStoreSelectorResources } from '../store-selector.props.autogenerated';\nimport { IStoreSelectorLocationLineItemResources, StoreSelectorLocationLineItemComponent } from './store-selector-location-line-item';\n\nexport interface IStoreSelectorLocationLinesProps {\n locations?: IFullOrgUnitAvailability[];\n resources: IStoreSelectorResources;\n preferredDistanceUnit?: string;\n\n alreadySelectedLocation?: OrgUnitLocation;\n outOfStockThreshold: number;\n enableOutOfStockCheck: boolean;\n storeLocatorView?: boolean;\n selectedStoreLocationId?: string;\n isPreferredStoreEnabled?: boolean;\n displayList?: boolean;\n isLocationDisabled?: boolean;\n productPickUpDeliveryOptions?: DeliveryOption[];\n onClick: ((locationId: string | undefined) => void);\n preferredStoreLocationId: string | null;\n onSetAsPreferredStore: ((locationId: string | undefined) => void);\n onRemovePreferredStore: (() => void);\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n onLocationSelected(location: OrgUnitLocation | undefined): void;\n}\n\n/**\n * Displays all the location line items, or null if none exists\n */\n@observer\nexport class StoreSelectorLocationLines extends React.PureComponent {\n private selectedLocationRef: React.RefObject;\n\n @observable private _stores: IFullOrgUnitAvailability[] | undefined;\n\n constructor(props: IStoreSelectorLocationLinesProps) {\n super(props);\n this.selectedLocationRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IStoreSelectorLocationLinesProps): void {\n if (this.props.selectedStoreLocationId !== prevProps.selectedStoreLocationId) {\n this._scrollIntoView();\n }\n }\n\n public componentDidMount(): void {\n if (this.props.locations) {\n this._stores = this._sortStores(this.props.locations);\n }\n }\n\n public render(): JSX.Element | null {\n if (!this._stores || this._stores.length === 0) {\n return null;\n }\n\n return (\n
\n {\n this._stores.map((store, index) => {\n return this._renderStoreLocation(store, index);\n })\n }\n
\n );\n }\n\n private _renderStoreLocation(store: IFullOrgUnitAvailability, index: number): JSX.Element | undefined {\n const orgUnitLocation = store?.OrgUnitAvailability?.OrgUnitLocation;\n const selectedStoreLocationId = this.props.selectedStoreLocationId;\n const deliveryOptions = store?.OrgUnitPickUpDeliveryModes;\n return orgUnitLocation && (\n this.props.onClick(orgUnitLocation.OrgUnitNumber)}\n ref={selectedStoreLocationId === orgUnitLocation.OrgUnitNumber ? this.selectedLocationRef : undefined}\n >\n \n \n );\n }\n\n private _sortStores(stores: IFullOrgUnitAvailability[]): IFullOrgUnitAvailability[] {\n const isPreferredStore = (value: IFullOrgUnitAvailability) => this.props.isPreferredStoreEnabled && this.props.preferredStoreLocationId &&\n value?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === this.props.preferredStoreLocationId;\n\n return [\n ...stores.filter(isPreferredStore),\n ...stores.filter(store => !isPreferredStore(store))\n ];\n }\n\n private _scrollIntoView = () => {\n const selectedLocationDiv = this.selectedLocationRef.current;\n const parent = selectedLocationDiv?.parentElement;\n if (selectedLocationDiv && parent) {\n if (parent.scrollTop > selectedLocationDiv.offsetTop) {\n parent.scrollTop = selectedLocationDiv.offsetTop;\n } else if (selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight > parent.scrollTop + parent.clientHeight) {\n parent.scrollTop = selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight - parent.clientHeight;\n }\n }\n }\n\n private _isCurrentLocation = (location: OrgUnitLocation | undefined): boolean =>\n (this.props.alreadySelectedLocation && location && this.props.alreadySelectedLocation.OrgUnitNumber === location.OrgUnitNumber) || false;\n\n private _isProductInStock = (ItemAvailabilities: ItemAvailability[] | undefined): boolean => {\n if (!this.props.enableOutOfStockCheck) {\n return true;\n }\n\n if (ItemAvailabilities && ItemAvailabilities.length > 0) {\n return ItemAvailabilities[0].AvailableQuantity ? ItemAvailabilities[0].AvailableQuantity > 0 : false;\n }\n\n return false;\n };\n\n private _stockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\n if (availabilityWithHours?.ProductInventoryInformation\n && availabilityWithHours?.ProductInventoryInformation.length > 0) {\n for(let i=0; i {\n return {\n contactInfoHeader: resources.contactText,\n storeHoursHeader: resources.timeText,\n availabilityInfoHeader: resources.availabilityText,\n\n closedText: resources.storeHoursClosedText,\n outOfStock: resources.outOfStockText,\n inStock: resources.inStockText,\n\n currentLocation: resources.selectedStoreLocationText,\n selectLocation: resources.selectStoreText,\n selectLocationAriaLabelFormat: resources.selectStoreAriaFormatText,\n setAsPreferredStoreText: resources.setAsPreferredStoreText,\n setAsPreferredStoreTextAriaLabel: resources.setAsPreferredStoreTextAriaLabel,\n preferredStoreText: resources.preferredStoreText,\n preferredStoreAriaLabel: resources.preferredStoreAriaLabel,\n\n days: {\n monday: resources.storeHoursMondayText,\n tuesday: resources.storeHoursTuesdayText,\n wednesday: resources.storeHoursWednesdayText,\n thursday: resources.storeHoursThursdayText,\n friday: resources.storeHoursFridayText,\n saturday: resources.storeHoursSaturdayText,\n sunday: resources.storeHoursSundayText,\n mondayFull: resources.storeHoursMondayFullText,\n tuesdayFull: resources.storeHoursTuesdayFullText,\n wednesdayFull: resources.storeHoursWednesdayFullText,\n thursdayFull: resources.storeHoursThursdayFullText,\n fridayFull: resources.storeHoursFridayFullText,\n saturdayFull: resources.storeHoursSaturdayFullText,\n sundayFull: resources.storeHoursSundayFullText\n }\n };\n }\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\nimport * as React from 'react';\n\nexport interface IStoreSelectorSearchFormProps {\n resources: {\n searchInputAriaLabel: string;\n searchButtonAriaLabel: string;\n searchPlaceholderText: string;\n seeAllStoresText: string;\n viewListText: string;\n viewMapText: string;\n };\n\n id: string;\n value: string;\n isMapDisabled?: boolean;\n showAllStores?: boolean;\n displayList?: boolean;\n locatorView?: boolean;\n productPickUpDeliveryOptions?: DeliveryOption[];\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n onShowAllStores(): void;\n onToggleListMapViewState(): void;\n performSearch(searchTerm: string): Promise;\n searchTermChanged(searchTerm: string): Promise;\n}\n\n/**\n * Simple search form consisting of search text and a search button\n */\nexport class StoreSelectorSearchForm extends React.PureComponent {\n private searchBoxRef: React.RefObject = React.createRef();\n private storeSearchAttributes: Msdyn365.IDictionary | undefined;\n private showAllStoreAttributes: Msdyn365.IDictionary | undefined;\n private toggleMapViewAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IStoreSelectorSearchFormProps) {\n super(props);\n this.state = { value: '' };\n const payLoad: IPayLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.SearchStore);\n this.storeSearchAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.ShowAllStore;\n this.showAllStoreAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.ToggleMapView;\n this.toggleMapViewAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n }\n\n public render(): JSX.Element {\n const {\n resources: { searchButtonAriaLabel, searchPlaceholderText, seeAllStoresText, viewListText, viewMapText },\n id,\n value,\n isMapDisabled,\n showAllStores,\n displayList,\n locatorView,\n onShowAllStores,\n onToggleListMapViewState,\n } = this.props;\n\n const toggleButtonText = displayList ? viewMapText : viewListText;\n\n return (\n
\n \n
\n );\n }\n\n private _searchTextChanged = async (e: React.ChangeEvent): Promise => {\n const inputValue: string = e.target.value;\n\n await this.props.searchTermChanged(inputValue);\n };\n\n private _onSubmit = async (e: React.SyntheticEvent): Promise => {\n e.preventDefault(); // Prevents form submission\n this.searchBoxRef.current?.blur();\n await this.props.performSearch(this.props.value);\n }\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { IStoreSelectorResources, ITermsOfServiceLinkData } from '../store-selector.props.autogenerated';\n\nexport interface IStoreSelectorEmptyMessageProps {\n resources: IStoreSelectorResources;\n}\nexport const StoreSelectorEmptyMessage: React.FC = ({ resources }) => (\n
\n

{resources.emptyLocationsText}

\n
\n);\n\nexport const StoreSelectorWaiting: React.FC = () => (\n
\n);\n\nexport interface IStoreSelectorTermsOfServiceProps {\n link?: ITermsOfServiceLinkData;\n requestContext: Msdyn365.IRequestContext;\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\n}\n\nexport const StoreSelectorTermsOfService: React.FC = ({ link, requestContext, onTextChange }) => {\n if(link) {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-store-select__terms-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button'\n };\n\n return(\n
\n \n
\n );\n\n }\n return null;\n};\n\nexport interface IStoreSelectorFoundLocationsMessage {\n resources: IStoreSelectorResources;\n locations?: IFullOrgUnitAvailability[];\n searchRadius: number;\n preferredDistanceUnit: string;\n isSeeAllStore: boolean;\n}\nexport const StoreSelectorFoundLocationsMessage: React.FC = ({ locations, searchRadius, resources, isSeeAllStore, preferredDistanceUnit }) => {\n if (locations) {\n const storeCountMessage = preferredDistanceUnit === resources.milesShortText ? resources.storeCountMessage : resources.storeCountMessageInKm;\n return (\n
\n { isSeeAllStore ? resources.storeAllCountMessage\n .replace('{count}', locations.length.toString()) : storeCountMessage\n .replace('{count}', locations.length.toString())\n .replace('{radius}', searchRadius.toString())\n }\n
\n );\n }\n\n return null;\n};","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n// tslint:disable:no-reference\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IStoreSelectorData } from './store-selector.data';\nimport { IStoreSelectorProps, mode as modeEnum, searchRadiusUnit, style as styleEnum } from './store-selector.props.autogenerated';\n\nimport {\n StoreSelectorEmptyMessage,\n StoreSelectorFoundLocationsMessage,\n StoreSelectorLocationLines,\n StoreSelectorSearchForm,\n StoreSelectorTermsOfService,\n StoreSelectorWaiting\n} from './components';\n\nimport { getFullAvailableInventoryNearby, GetFullAvailableInventoryNearbyInput, getOrgUnitLocationsByArea, GetOrgUnitLocationsByAreaInput, IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IStoreInfo } from '@msdyn365-commerce-modules/bopis-utilities';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody, ModalFooter, ModalHeader, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport classname from 'classnames';\nexport interface IStoreSelectorState {\n isSearchInProgress: boolean;\n searchTerm?: string;\n isSeeAllStoreValue: boolean;\n isLocationDisabled?: boolean;\n}\n\nexport interface IStoreSelectorViewProps extends IStoreSelectorProps {\n state: IStoreSelectorState;\n\n // Containers:\n ModuleProps: IModuleProps;\n BodyContainerProps: INodeProps;\n FooterContainerProps: INodeProps;\n HeaderContainerProps: INodeProps;\n HeaderProps?: React.ReactNode;\n\n // Components\n locationsMessage?: React.ReactNode;\n search?: React.ReactNode;\n spinner?: React.ReactNode;\n locationsList?: React.ReactNode;\n noLocationsMessage?: React.ReactNode;\n terms?: React.ReactNode;\n headerText?: React.ReactNode;\n\n callbacks: {\n closeDialog(): Promise;\n searchTermChanged(searchTerm: string): Promise;\n performSearch(searchTerm: string): Promise;\n selectedLocation(location: OrgUnitLocation | undefined): Promise;\n getAndUpdateUserLocation(): Promise;\n attachMapAutoSuggest(): Promise;\n onSuggestionSelected(result: Microsoft.Maps.ISuggestionResult): Promise;\n setPreferredStore(storeId: string | undefined): Promise;\n removePreferredStore(): Promise;\n setSelectedStore(storeId: string | undefined): Promise;\n setOrgUnitStoreInformation(location: OrgUnitLocation | undefined): Promise;\n };\n}\n\n/**\n *\n * Pick Up In Store module\n * @extends React.Component>}\n */\n@observer\nclass StoreSelector extends React.Component, IStoreSelectorState> {\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\n private telemetryContent: ITelemetryContent;\n\n constructor(props: IStoreSelectorProps) {\n super(props);\n this.state = { isSearchInProgress: true, searchTerm: '',isSeeAllStoreValue:false};\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n // tslint:disable-next-line: max-func-body-length\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: {\n channel\n }\n }\n },\n config: {\n autoSuggestionEnabled\n }\n } = this.props;\n\n // Adding Timeout to make sure it loads the data based upon the preferred store.\n setTimeout(() => {\n this._getAndUpdateStoreLocation();\n }, 0);\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result && this.props.data.storeSelectorStateManager.result.isDialogOpen,\n async () => {\n const context = this.props.data.storeSelectorStateManager.result?.context;\n if (context?.id === this.props.id) {\n this._getAndUpdateStoreLocation();\n }\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result && this.props.data.storeSelectorStateManager.result.context && this.props.data.storeSelectorStateManager.result.context.id,\n async () => {\n const context = this.props.data.storeSelectorStateManager.result?.context;\n if (!context || (context?.id === this.props.id)) {\n await this._searchTermChanged('');\n this._getAndUpdateStoreLocation();\n }\n }\n );\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n if (this.props.data.storeSelectorStateManager.result?.loadMapApi) {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsApiKey,\n lang: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode,\n market: this.props.context?.actionContext?.requestContext?.channel?.DefaultLanguageId\n }).then().catch();\n }\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsApiKey,\n lang: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode,\n market: this.props.context?.actionContext?.requestContext?.channel?.DefaultLanguageId\n });\n }\n );\n\n if (autoSuggestionEnabled) {\n when(\n () => {\n const isMapApiLoaded = !!this.props.data.storeSelectorStateManager.result?.isMapApiLoaded;\n const isDialogOpen = !!this.props.data.storeSelectorStateManager.result?.isDialogOpen;\n const isSameContext = this.props.data.storeSelectorStateManager.result?.context?.id === this.props.id;\n return isMapApiLoaded && isDialogOpen && isSameContext;\n },\n async () => {\n setTimeout(async () => {\n await this._attachMapAutoSuggest();\n }, 0);\n }\n );\n }\n }\n\n public shouldComponentUpdate(nextProps: IStoreSelectorProps): boolean {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager },\n }\n } = this.props;\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\n if (context && context.id === this.props.id) {\n return true;\n }\n return false;\n }\n\n // tslint:disable-next-line:max-func-body-length cyclomatic-complexity\n public render(): JSX.Element {\n const {\n config: {\n termsOfServiceLink,\n className,\n heading,\n mode,\n style,\n setAsPreferredStore,\n showAllStores,\n lookupRadius\n },\n context: {\n telemetry,\n app: {\n config: appConfig\n },\n actionContext: {\n requestContext: {\n channel,\n cookies\n }\n }\n },\n resources,\n data: {\n availabilitiesWithHours: { result: availabilitiesWithHours },\n storeSelectorStateManager: { result: storeSelectorStateManager },\n storeLocations: { result: storeLocations }\n }\n } = this.props;\n\n const isMapDisabled = (channel && channel.BingMapsApiKey && channel.BingMapsEnabled) ? false : true;\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\n const isDialogOpen: boolean = storeSelectorStateManager ? storeSelectorStateManager.isDialogOpen && (context?.id === this.props.id) : false;\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n const inlineView = styleDefault === styleEnum.inline;\n const locatorView = modeDefault === modeEnum.findStores;\n const hideInventory = locatorView;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\n const displayList = storeSelectorStateManager?.listMapViewState?.displayList;\n const isPreferredStoreEnabled = setAsPreferredStore && cookies?.isConsentGiven();\n const showLocationView = (context && (context.showMapViewLink === undefined || context.showMapViewLink)) && locatorView && storeSelectorStateManager?.isMapModuleLoaded;\n\n const StoreSelectorActions = {\n toggleListMapViewState(): void {\n storeSelectorStateManager?.toggleListMapViewState();\n }\n };\n\n if (!(channel && channel.BingMapsApiKey)) {\n telemetry.error('BingMapsApiKey is missing.');\n }\n\n const configHeading = heading ? heading : locatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText;\n const preferredDistanceUnit = this.props.config.searchRadiusUnit === searchRadiusUnit.kilometers ? resources.kilometersShortText : resources.milesShortText ;\n\n const viewProps = {\n ...(this.props as IStoreSelectorProps),\n state: this.state,\n\n ModuleProps: {\n tag: inlineView ? 'div' as NodeTag : Modal,\n moduleProps: this.props,\n className: classname(`ms-store-${inlineView ? 'locate' : 'select'}`, className, inlineView ? '': 'msc-modal-input-required'),\n autoFocus: true,\n fade: true,\n isOpen: isDialogOpen,\n onClosed: this._closeDialog,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n toggle: this._closeDialog\n },\n HeaderContainerProps: {\n tag: inlineView ? 'div' as NodeTag : ModalHeader,\n className: `ms-store-select__${inlineView ? 'header' : 'modal-header'}`,\n toggle: this._closeDialog\n },\n HeaderProps: configHeading && (\n \n ),\n FooterContainerProps: {\n tag: inlineView ? 'div' as NodeTag : ModalFooter,\n className: `ms-store-select__${inlineView ? 'footer' : 'modal-footer'} ${!displayList ? 'map-only-view' : ''}`\n },\n BodyContainerProps: {\n tag: inlineView ? 'div' as NodeTag : ModalBody,\n className: `ms-store-select__${inlineView ? 'body' : 'modal-body'}`\n },\n locationsMessage: !this.state.isLocationDisabled && (\n \n ),\n search: (\n this._getAndUpdateStoreLocation(true)}\n onToggleListMapViewState={StoreSelectorActions.toggleListMapViewState}\n displayList={displayList}\n locatorView={showLocationView}\n productPickUpDeliveryOptions={storeSelectorStateManager?.context?.deliveryOptions?.DeliveryOptions}\n telemetryContent={this.telemetryContent}\n />\n ),\n spinner: ,\n locationsList: ((availabilitiesWithHours && availabilitiesWithHours.length) || (storeLocations && storeLocations.length)) && (\n \n ),\n noLocationsMessage: ,\n terms: ,\n // Not being used in current context, we can use it here to pass more props.\n headerText: {heading ? heading : locatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText},\n\n callbacks: {\n searchTermChanged: this._searchTermChanged,\n performSearch: this._performSearch,\n closeDialog: this._closeDialog,\n selectedLocation: this._onOrgUnitLocationSelected,\n getAndUpdateUserLocation: () => { this._getAndUpdateStoreLocation(); return Promise.resolve(); },\n attachMapAutoSuggest: this._attachMapAutoSuggest,\n onSuggestionSelected: this._onOrgUnitLocationSelected,\n setPreferredStore: this._setPreferredStore,\n removePreferredStore: this._removePreferredStore,\n setSelectedStore: this._setSelectedStore,\n setOrgUnitStoreInformation: this._setOrgUnitStoreInformation\n }\n } as IStoreSelectorViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.termsOfServiceLink) {\n this.props.config.termsOfServiceLink.linkText = event.target.value;\n }\n };\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading = event.target.value;\n\n private _attachMapAutoSuggest = async (): Promise => {\n const {\n config: {\n autoSuggestOptions\n },\n context: {\n telemetry,\n actionContext: {\n requestContext: {\n channel\n }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager?.isMapApiLoaded && !this.autoSuggestManager) {\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\n callback: () => {\n const options = { ...autoSuggestOptions, countryCode: channel?.ChannelCountryRegionISOCode };\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\n this.autoSuggestManager.attachAutosuggest(`#ms-store-select__search-box_${this.props.id}`, `#ms-store-select__search-box-container_${this.props.id}`, this._onSuggestionSelected);\n },\n errorCallback: () => {\n if (telemetry) {\n telemetry.debug('Unable to attach map auto suggest.');\n }\n },\n credentials: channel?.BingMapsApiKey\n });\n }\n }\n\n private _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\n const context = this.props.data.storeSelectorStateManager && this.props.data.storeSelectorStateManager.result &&\n this.props.data.storeSelectorStateManager.result?.context;\n if (context && (context?.id === this.props.id)) {\n await this._searchTermChanged(result.formattedSuggestion);\n await this._performSearch(result.formattedSuggestion);\n }\n }\n\n private _setPreferredStore = async (storeId: string | undefined): Promise => {\n if (!storeId) {\n return;\n }\n\n const {\n context: {\n actionContext: {\n requestContext: {\n cookies\n }\n }\n },\n config: {\n mode,\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager },\n storeLocations: {result: storeLocations},\n availabilitiesWithHours: { result: availabilitiesWithHours }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) { return; }\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n\n let stores: IFullOrgUnitAvailability[];\n if (modeDefault === modeEnum.findStores && storeLocations) {\n stores = storeLocations;\n } else {\n stores = availabilitiesWithHours!;\n }\n\n const preferedStore = stores.find(store => store.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === storeId);\n\n await storeSelectorStateManager.setPreferredStoreLocation(storeId, preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName, cookies?.isConsentGiven(),\n preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.Latitude, preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.Longitude);\n }\n\n private _removePreferredStore = async (): Promise => {\n const {\n context: {\n actionContext: {\n requestContext: {\n cookies\n }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) { return; }\n\n await storeSelectorStateManager.clearPreferredStore(cookies?.isConsentGiven());\n }\n\n private _setSelectedStore = async (storeId: string | undefined): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) { return; }\n\n await storeSelectorStateManager.setSelectedStoreLocationId(storeId);\n }\n\n private _performSearch = async (searchTerm: string): Promise => {\n const {\n context: {\n actionContext\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!searchTerm || !storeSelectorStateManager) {\n return;\n }\n\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\n\n const location = await storeSelectorStateManager.geoLocate(searchTerm.trim() !== '' ? searchTerm : '0', actionContext);\n\n if (location) {\n await this._updateLocations(location.latitude, location.longitude);\n } else {\n await this._updateLocations();\n }\n\n this.setState({ isSearchInProgress: false });\n }\n\n private _searchTermChanged = async (searchTerm: string): Promise => {\n this.setState({ searchTerm: searchTerm });\n }\n\n private _getAndUpdateStoreLocation = (showAllStores?: boolean): void => {\n const {\n config: {\n style\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n\n if (styleDefault !== styleEnum.inline && (!storeSelectorStateManager || !storeSelectorStateManager.isDialogOpen)) {\n // Store selector dialog isn't open yet, so don't try and update anything\n return;\n }\n\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\n\n if (navigator && navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n async position => {\n if (showAllStores) {\n this.setState({ isSeeAllStoreValue: true });\n await this._searchTermChanged('');\n await this._updateLocations(position.coords.latitude, position.coords.longitude, 0);\n } else {\n await this._updateLocations(position.coords.latitude, position.coords.longitude);\n }\n\n this.setState({ isSearchInProgress: false });\n },\n async error => {\n // If the location setting is turned off\n if (error.PERMISSION_DENIED) {\n this.setState({ isLocationDisabled: true });\n if (showAllStores) {\n this.setState({ isSeeAllStoreValue: true });\n await this._searchTermChanged('');\n await this._updateLocations(void 0, void 0, 0);\n } else {\n await this._updateLocations();\n }\n }\n\n this.setState({ isSearchInProgress: false });\n },\n { timeout: 2000 }\n );\n } else {\n this.setState({ isSearchInProgress: false });\n }\n }\n\n private _closeDialog = async (): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n this.setState({ searchTerm: '' });\n\n if (storeSelectorStateManager) {\n return storeSelectorStateManager.closeDialog();\n }\n }\n\n private _setOrgUnitStoreInformation = async (orgUnitStoreInformation: IFullOrgUnitAvailability[]): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n },\n config: {\n style\n },\n telemetry\n } = this.props;\n\n if (!storeSelectorStateManager) { return; }\n\n const context = storeSelectorStateManager.context;\n const id: string = context && context.id ? context.id : this.props.id;\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n await storeSelectorStateManager.setOrgUnitStoreInformation({\n id,\n showMapViewLink: context && context.showMapViewLink,\n isDialog: styleDefault === styleEnum.dialog,\n orgUnitStoreInformation,\n onLocationSelected: orgUnitLocation => {\n // TO-DO handle event for when location in selected\n return Promise.resolve();\n }\n })\n .catch((error: Error) => {\n if (telemetry) {\n telemetry.error(error.message);\n telemetry.debug('Unable to Update store location state');\n }\n return;\n });\n return;\n }\n\n // tslint:disable-next-line: cyclomatic-complexity\n private _updateLocations = async (latitude?: number, longitude?: number, radius?: number): Promise => {\n const {\n telemetry,\n config: {\n mode,\n lookupRadius,\n style\n },\n context: {\n actionContext\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n const calRadius = (radius || radius === 0) ? radius : (lookupRadius || 50);\n const distanceUnitValue = this.props.config.searchRadiusUnit === searchRadiusUnit.kilometers ? 1 : 0;\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\n let lat = this.state.searchTerm || !(preferredStore?.Latitude) ? latitude : preferredStore.Latitude;\n let long = this.state.searchTerm || !(preferredStore?.Longitude) ? longitude : preferredStore.Longitude;\n if (styleDefault === styleEnum.inline) {\n const lastInlineStoreLocation = storeSelectorStateManager?.lastInlineShownStoreInfo;\n if (lastInlineStoreLocation && !this.state.searchTerm) {\n lat = lastInlineStoreLocation.Latitude ? lastInlineStoreLocation.Latitude : lat;\n long = lastInlineStoreLocation.Longitude ? lastInlineStoreLocation.Longitude : long;\n }\n await storeSelectorStateManager?.setLastInlineStoreInfo(lat, long);\n }\n\n if (modeDefault === modeEnum.findStores) {\n const orgUnitLocationsInput = new GetOrgUnitLocationsByAreaInput(\n lat,\n long,\n calRadius,\n distanceUnitValue,\n this.state.isLocationDisabled\n );\n\n const orgUnitLocations = await getOrgUnitLocationsByArea(orgUnitLocationsInput, actionContext);\n if (orgUnitLocations) {\n await this._setOrgUnitStoreInformation(orgUnitLocations);\n await this._setSelectedStore(undefined);\n }\n return;\n }\n\n if (!storeSelectorStateManager || !storeSelectorStateManager.context) {\n // Store selector dialog isn't open yet, so don't try and update anything\n return;\n }\n\n if (!storeSelectorStateManager.context.product) {\n // TODO: Use alternative search method here to not make inventory check\n return;\n }\n\n const input = new GetFullAvailableInventoryNearbyInput(\n storeSelectorStateManager.context.product.RecordId,\n lat || 0,\n long || 0,\n calRadius,\n distanceUnitValue,\n this.state.isLocationDisabled\n );\n\n await getFullAvailableInventoryNearby(input, actionContext).catch((error) => {\n telemetry.warning(error);\n telemetry.error(error.message);\n telemetry.debug(`Unable to get full available inventory near by`);\n });\n }\n\n private _onOrgUnitLocationSelected = async (location: OrgUnitLocation | undefined, deliveryMode?: string): Promise => {\n const {\n telemetry,\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager) {\n if (location && storeSelectorStateManager.context) {\n // Want to eat exceptions here so that the dialog still closes even if the onLocationSelected call goes wrong\n await storeSelectorStateManager.context.onLocationSelected(location, deliveryMode).catch(error => {\n telemetry.warning(error);\n telemetry.error(error.message);\n telemetry.debug(`Unable to get on org unit location selected`);\n });\n }\n\n await storeSelectorStateManager.closeDialog();\n }\n };\n}\n\nexport default StoreSelector;\n","import { CartLine } from '@msdyn365-commerce/retail-proxy';\r\nexport function calculateSavingPercentAmount(lines?: CartLine[]): number {\r\n let total = 0;\r\n lines?.forEach(line => total += line.Quantity || 0);\r\n if (total > 11) { return 15; }\r\n if (total > 3) { return 10; }\r\n return 0;\r\n}","import { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport type CallToActionLayout = 'button' | 'glyphOnly' | 'noGlyph';\r\nexport type CallToActionMotion = 'separate' | 'revelio';\r\nexport type CallToActionGlyphPosition = 'start' | 'end';\r\n\r\ninterface ICallToAction {\r\n title: string;\r\n href?: string;\r\n openInNewTab?: boolean;\r\n 'aria-label'?: string;\r\n className?: string;\r\n color?: string;\r\n glyph?: string;\r\n layout: CallToActionLayout;\r\n glyphPosition?: CallToActionGlyphPosition;\r\n disabled?: boolean;\r\n onClick?(e: React.MouseEvent): void;\r\n}\r\n\r\nfunction createInnerCTAFragment(\r\n glyphClassName: string,\r\n title: string,\r\n ctaLayout: CallToActionLayout,\r\n glyphPosition?: CallToActionGlyphPosition\r\n): React.ReactFragment {\r\n if (ctaLayout === 'noGlyph') {\r\n return {title};\r\n }\r\n\r\n if (ctaLayout === 'glyphOnly') {\r\n return