{"version":3,"file":"static/js/38.8e3d7f84a4b190cbacc3.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/data-actions/address/get-nz-post-address.ts?5c0c","webpack://Citta2.0/./src/data-actions/address/get-nz-post-address-details.ts?0cce","webpack://Citta2.0/./src/components/citta-address-search/citta-address-search.tsx?f513","webpack://Citta2.0/./src/common/address/components/address-detail-item.tsx?8040","webpack://Citta2.0/./src/common/address/components/address-show.tsx?6ef2","webpack://Citta2.0/./src/common/address/address-autosuggest.ts?a33c","webpack://Citta2.0/./src/common/address/address-common.ts?a474","webpack://Citta2.0/./src/common/address/address-format.ts?1ccb","webpack://Citta2.0/./src/common/address/address-meta-data.ts?3d2e","webpack://Citta2.0/./src/common/address/address-module.data.ts?0b28","webpack://Citta2.0/./src/common/address/components/address-alert.tsx?55f1","webpack://Citta2.0/./src/common/address/components/address-checkbox.tsx?e374","webpack://Citta2.0/./src/common/address/components/address-dropdown.tsx?c3df","webpack://Citta2.0/./src/common/address/components/address-label.tsx?821d","webpack://Citta2.0/./src/common/address/components/address-add.tsx?e89c","webpack://Citta2.0/./src/common/address/components/address-button.tsx?2d1a","webpack://Citta2.0/./src/common/address/components/address-input.tsx?1d04","webpack://Citta2.0/./src/common/address/address-format.data.ts?95b3","webpack://Citta2.0/./src/common/address/components/address-error-message.tsx?f569","webpack://Citta2.0/./src/common/address/components/address-error-title.tsx?81a8"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\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 { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { getAddressAsync } from '../generated/DataActionExtension.g';\r\nimport { IDXC_GetNZPostAddressResponse } from '../generated/DataServiceEntities.g';\r\n\r\n/**\r\n * GetNZPostAddressActionInput Input Action\r\n */\r\n\r\nexport class GetNZPostAddressResponseActionInput implements IActionInput {\r\n public search: string;\r\n\r\n // Construct the input needed to run the action\r\n constructor(search: string) {\r\n this.search = search;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => 'GetNZAddressResponse2020';\r\n public getCacheObjectType = () => 'GetNZAddressResponse';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: GetNZPostAddressResponseActionInput): IActionInput => {\r\n return args;\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nexport async function getNZAddressResponseAction(\r\n input: GetNZPostAddressResponseActionInput,\r\n ctx: IActionContext\r\n): Promise {\r\n\r\n let addressResult: IDXC_GetNZPostAddressResponse = { success: false };\r\n return getAddressAsync({ callerContext: ctx }, input.search)\r\n .then((response) => {\r\n if (response && !(response instanceof Error)) {\r\n addressResult = response;\r\n return addressResult;\r\n } else {\r\n return addressResult;\r\n }\r\n })\r\n .catch((error: Error) => {\r\n ctx.trace(error.message);\r\n return addressResult;\r\n });\r\n}\r\n\r\nexport const ISubmitSubscribeFormDataActionAction = createObservableDataAction({\r\n action: >getNZAddressResponseAction,\r\n input: createInput\r\n});\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { getAddressDetailAsync } from '../generated/DataActionExtension.g';\r\nimport { IDXC_GetNZPostAddressDetailResponse } from '../generated/DataServiceEntities.g';\r\n\r\n/**\r\n * GetNZPostAddressActionInput Input Action\r\n */\r\n\r\nexport class GetNZPostAddressDetailsActionInput implements IActionInput {\r\n public addressId: string;\r\n\r\n // Construct the input needed to run the action\r\n constructor(addressId: string) {\r\n this.addressId = addressId;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => 'GetNZAddressDetailsResponse2020';\r\n public getCacheObjectType = () => 'GetNZAddressDetailsResponse';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: GetNZPostAddressDetailsActionInput): IActionInput => {\r\n return args;\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nexport async function getNZAddressResponseDetailsAction(\r\n input: GetNZPostAddressDetailsActionInput,\r\n ctx: IActionContext\r\n): Promise {\r\n let addressDetailsResult: IDXC_GetNZPostAddressDetailResponse = { success: false };\r\n return getAddressDetailAsync({ callerContext: ctx }, input.addressId)\r\n .then((response) => {\r\n if (response && !(response instanceof Error)) {\r\n addressDetailsResult = response;\r\n return addressDetailsResult;\r\n } else {\r\n return addressDetailsResult;\r\n }\r\n })\r\n .catch((error: Error) => {\r\n ctx.trace(error.message);\r\n return addressDetailsResult;\r\n });\r\n}\r\n\r\nexport const ISubmitSubscribeFormDataActionAction = createObservableDataAction({\r\n action: >getNZAddressResponseDetailsAction,\r\n input: createInput\r\n});\r\n","import classname from 'classnames';\r\nimport * as React from 'react';\r\nimport { getNZAddressResponseAction, GetNZPostAddressResponseActionInput } from '../../data-actions/address/get-nz-post-address';\r\nimport { getNZAddressResponseDetailsAction, GetNZPostAddressDetailsActionInput } from '../../data-actions/address/get-nz-post-address-details';\r\nimport { IAddressDetails, IDXC_Address } from '../../data-actions/generated/DataServiceEntities.g';\r\n\r\ninterface IState {\r\n showAddressList: boolean;\r\n searchAddress: string | undefined;\r\n selectedAddress: IAddressDetails | undefined;\r\n formattedAddress: IFormattedAddressDetails | undefined;\r\n addressList: IDXC_Address[] | undefined;\r\n messageID: string | undefined;\r\n manualAddressLabel: string;\r\n searchAddressLabel: string;\r\n errorMessage: string | undefined;\r\n}\r\n\r\ninterface IProp {\r\n // tslint:disable-next-line: no-any\r\n context: any; // needed for API calls\r\n manualAddress: boolean; // boolean toggle for manual address input - passed from wrapper module\r\n addressSelectedCallback(address: IFormattedAddressDetails | undefined): void; // passes selected address to wrapper module\r\n toggleManualAddressCallback(): void; // called to toggle search and manual address input (should toggle manualAddress variable in wrapper module)\r\n}\r\n\r\n/**\r\n * AddressSearch component\r\n */\r\nclass AddressSearch extends React.Component {\r\n private _SearchAddressInputRef: React.RefObject;\r\n\r\n constructor(props: IProp) {\r\n super(props);\r\n this._SearchAddressInputRef = React.createRef();\r\n\r\n this.state = {\r\n showAddressList: false,\r\n searchAddress: '',\r\n selectedAddress: undefined,\r\n formattedAddress: undefined,\r\n addressList: [],\r\n messageID: '',\r\n manualAddressLabel: 'Enter Address Manually',\r\n searchAddressLabel: 'Search for your Address',\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n return(\r\n
\r\n {!this.props.manualAddress &&\r\n
\r\n
Search Address
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.state.showAddressList && this.state.addressList &&\r\n
\r\n
    \r\n {this.state.addressList.map((address: IDXC_Address, index: number) => {\r\n if (address) {\r\n const addressId = address && address.address_id ? address.address_id : '';\r\n const fullAddress = address && address.full_address ? address.full_address : '';\r\n return (\r\n
  • \r\n {address.full_address}\r\n
  • \r\n );\r\n }\r\n return null;\r\n })}\r\n
\r\n
\r\n }\r\n
\r\n }\r\n {this.state.errorMessage &&\r\n
\r\n {this.state.errorMessage}\r\n
\r\n }\r\n \r\n
\r\n );\r\n }\r\n\r\n public clearAddress = () => {\r\n this.setState({\r\n searchAddress: '',\r\n selectedAddress: undefined,\r\n formattedAddress: undefined\r\n });\r\n }\r\n\r\n /**\r\n * Calls lookahead search API for currently typed input string\r\n */\r\n private getNZAddress = () => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n const inputText = this._SearchAddressInputRef.current && this._SearchAddressInputRef.current.value || '';\r\n this.setState({\r\n searchAddress: inputText,\r\n selectedAddress: undefined,\r\n formattedAddress: undefined,\r\n errorMessage: undefined\r\n });\r\n this.props.addressSelectedCallback(undefined);\r\n if (inputText.length > 3) {\r\n getNZAddressResponseAction(new GetNZPostAddressResponseActionInput(inputText), this.props.context.actionContext).then(\r\n (result) => {\r\n\r\n this.setState({\r\n addressList: result.addresses,\r\n messageID: result.message_id,\r\n showAddressList: true\r\n });\r\n }\r\n )\r\n .catch(() => {\r\n console.log('No data');\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Calls API to get full details of selected address\r\n */\r\n private getNZAddressDetails = (addressId: string, fullAddress: string) => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n getNZAddressResponseDetailsAction(new GetNZPostAddressDetailsActionInput(addressId), this.props.context.actionContext).then(\r\n (result) => {\r\n console.log('result', result);\r\n const formattedAddressObject = this._getFormattedAddressObject(result.address);\r\n this.setState({\r\n showAddressList: false,\r\n searchAddress: result.address ? fullAddress : this.state.searchAddress,\r\n selectedAddress: result.address,\r\n formattedAddress: formattedAddressObject,\r\n errorMessage: result.address ? undefined : 'There was an error retrieving this address, if this error persists please enter your address manually'\r\n });\r\n this.props.addressSelectedCallback(formattedAddressObject);\r\n }\r\n )\r\n .catch(() => {\r\n console.log('No data');\r\n });\r\n }\r\n\r\n /**\r\n * Formats the address object to match data needed in AX\r\n * @param address Address object from NZ Post API\r\n */\r\n private _getFormattedAddressObject(address: IAddressDetails | undefined): IFormattedAddressDetails | undefined {\r\n if (!address) {\r\n return;\r\n }\r\n console.log('address', address)\r\n return {\r\n building_name: this._getFormattedBuildingName(address),\r\n street_number: this._getFormattedStreetNumber(address),\r\n street: this._getFormattedStreet(address),\r\n suburb: address.suburb,\r\n city: address.city,\r\n postcode: address.postcode,\r\n country: address.country,\r\n };\r\n }\r\n\r\n private _getFormattedBuildingName(address: IAddressDetails): string | undefined {\r\n if (!(address.unit_type || address.unit_value || address.floor)) {\r\n return;\r\n }\r\n\r\n let buildingName = address.unit_type ? address.unit_type : '';\r\n buildingName += address.unit_value ? ` ${address.unit_value}` : '';\r\n if (address.floor) {\r\n buildingName.length > 0 ? buildingName += ` ${address.floor}` : buildingName = address.floor;\r\n }\r\n return buildingName;\r\n }\r\n\r\n private _getFormattedStreetNumber(address: IAddressDetails): string | undefined {\r\n if (!(address.street_number || address.street_alpha)) {\r\n return;\r\n }\r\n let streetNumDetails = address.street_number ? `${address.street_number}` : '';\r\n streetNumDetails += address.street_alpha ? address.street_alpha : '';\r\n return streetNumDetails;\r\n }\r\n\r\n private _getFormattedStreet(address: IAddressDetails): string | undefined {\r\n if (!(address.street || address.street_type || address.road_suffix_name)) {\r\n return;\r\n }\r\n let street = address.street ? address.street : '';\r\n street += address.street_type ? ` ${address.street_type}` : '';\r\n street += address.road_suffix_name ? ` ${address.road_suffix_name}` : '';\r\n\r\n if (address.rural_delivery_number) {\r\n street += `, ${address.rural_delivery_number}` \r\n }\r\n return street;\r\n }\r\n\r\n /**\r\n * onClick function to trigger manual input toggle callback\r\n */\r\n private toggleManualAddress = () => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n this.props.toggleManualAddressCallback();\r\n this.clearAddress();\r\n }\r\n}\r\n\r\nexport default AddressSearch;\r\n\r\n/**\r\n * Formatted address object\r\n */\r\nexport interface IFormattedAddressDetails {\r\n building_name?: string;\r\n\r\n street_number?: string;\r\n\r\n street?: string;\r\n\r\n suburb?: string;\r\n\r\n city?: string;\r\n\r\n postcode?: string;\r\n\r\n country?: string;\r\n\r\n rural_delivery_number?: string;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressDetailItem {\r\n isNewLine: boolean;\r\n isShowLabel: boolean;\r\n labelText: string;\r\n name: string;\r\n value: string;\r\n}\r\n\r\nconst AddressDetailItem: React.FC = ({\r\n isNewLine,\r\n isShowLabel,\r\n labelText,\r\n name,\r\n value\r\n}) => {\r\n const className = `msc-address-detail__item msc-address-detail__item-${name.toLowerCase()}`;\r\n const isEmpty = !(value && value.length > 0);\r\n const mainClass= isShowLabel? `msc-address-detail__item msc-address-detail__item-address-detail_${labelText}`:classname(className, { 'msc-address-detail__item-empty': isEmpty, 'msc-address-detail__item-newline': isNewLine });\r\n return (\r\n \r\n {\r\n isShowLabel && <>\r\n {labelText}\r\n \r\n \r\n }\r\n {value}\r\n \r\n );\r\n};\r\n\r\nexport default AddressDetailItem;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressItemType, IAddressItem } from '../address-format.data';\r\nimport AddressDetailItemComponent from './address-detail-item';\r\n\r\nexport interface IAddressShowItem {\r\n key: string;\r\n description: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressShowProps {\r\n AddressDetail: INodeProps;\r\n items: IAddressShowItem[];\r\n}\r\n\r\nexport interface IAddressShowInputProps {\r\n addressFormat: IAddressItem[];\r\n address: Address;\r\n addressPurposes: AddressPurpose[];\r\n}\r\n\r\nexport const AddressShow = (props: IAddressShowInputProps): IAddressShowProps => {\r\n const { addressFormat, addressPurposes, address } = props;\r\n\r\n return {\r\n AddressDetail: { className: 'msc-address-detail' },\r\n items: addressFormat.map((item) => {\r\n if (item.name === AddressItemType[AddressItemType.AddressTypeValue]) {\r\n const addressType = addressPurposes.find((addressTypeValue) => addressTypeValue.AddressType.toString() === (address[item.name] || '').toString());\r\n if (addressType) {\r\n const value = addressType.Name || '';\r\n return {\r\n key: item.name,\r\n description: \r\n };\r\n }\r\n }\r\n return {\r\n key: item.name,\r\n description: \r\n };\r\n })\r\n };\r\n};","// tslint:disable:no-reference\r\n/// \r\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport MsDyn365, { ITelemetry } from '@msdyn365-commerce/core';\r\nimport { IAutoSuggestOptions } from './address-autosuggest.data';\r\n/**\r\n *\r\n * Auto Suggest\r\n */\r\nexport class AutoSuggest {\r\n public readonly excludedAddressFields: string[] = ['ThreeLetterISORegionName', 'Name', 'AddressTypeValue', 'Phone'];\r\n private telemetry: ITelemetry;\r\n private countryCode?: string;\r\n private bingMapsApiKey?: string;\r\n private defaultLanguageId?: string;\r\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\r\n private autoSuggestOptions: IAutoSuggestOptions;\r\n\r\n constructor(telemetry: ITelemetry, autoSuggestOptions: IAutoSuggestOptions, BingMapsApiKey?: string, countryCode?: string, defaultLanguageId?: string) {\r\n this.telemetry = telemetry;\r\n this.autoSuggestOptions = autoSuggestOptions;\r\n this.bingMapsApiKey = BingMapsApiKey;\r\n this.countryCode = countryCode;\r\n this.defaultLanguageId = defaultLanguageId;\r\n }\r\n\r\n public attachAutoSuggest = (inputId: string, containerId: string, selectedSuggestionCallback: (result: Microsoft.Maps.ISuggestionResult) => void): void => {\r\n if (!this.autoSuggestManager) {\r\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\r\n callback: () => {\r\n const options = { ...this.autoSuggestOptions, countryCode: this.countryCode };\r\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\r\n this.autoSuggestManager.attachAutosuggest(inputId, containerId, selectedSuggestionCallback);\r\n if (MsDyn365.isBrowser) {\r\n document.querySelector(inputId)?.setAttribute('role','combobox');\r\n setTimeout(\r\n () => {\r\n document.querySelector(inputId)?.setAttribute('type', 'text');\r\n },\r\n 0\r\n );\r\n }\r\n },\r\n errorCallback: () => {\r\n if (this.telemetry) {\r\n this.telemetry.debug('Unable to attach map auto suggest.');\r\n }\r\n },\r\n credentials: this.bingMapsApiKey\r\n });\r\n }\r\n }\r\n\r\n public changeAutoSuggestionCountryCode = (countryCode?: string): void => {\r\n if(this.autoSuggestManager) {\r\n this.autoSuggestOptions.countryCode = countryCode;\r\n this.autoSuggestManager.setOptions(this.autoSuggestOptions);\r\n }\r\n }\r\n\r\n public disposeAutoSuggest = (): void => {\r\n this.autoSuggestManager?.detachAutosuggest();\r\n this.autoSuggestManager?.dispose();\r\n this.autoSuggestManager = undefined;\r\n }\r\n\r\n public _loadMapAPI = async (storeSelectorStateManager: IStoreSelectorStateManager): Promise => {\r\n await storeSelectorStateManager.loadMapApi({\r\n key: this.bingMapsApiKey,\r\n lang: this.countryCode,\r\n market: this.defaultLanguageId\r\n });\r\n }\r\n}","import {\r\n addAddress, AddressManagementInput, updateAddress, updatePrimaryAddress\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IActionInput, ICoreContext, IObservableAction, ITelemetry } from '@msdyn365-commerce/core';\r\nimport {\r\n Address, CountryRegionInfo, StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { getStateProvinceAction, GetStateProvincesInput } from '../../data-actions/address/get-state-provinces';\r\nimport { IAddressResource, IAddressResponse } from './address-module.data';\r\n\r\n/**\r\n *\r\n * Address common\r\n */\r\nexport class AddressCommon {\r\n\r\n private context: ICoreContext;\r\n private resources: IAddressResource;\r\n private telemetry: ITelemetry;\r\n\r\n constructor(context: ICoreContext, resources: IAddressResource, telemetry: ITelemetry) {\r\n this.context = context;\r\n this.resources = resources;\r\n this.telemetry = telemetry;\r\n }\r\n\r\n public getDefaultCountryRegionId = (countryRegionId: string, countryRegions: CountryRegionInfo[], market?: string): string => {\r\n const marketISOCode = market || 'US';\r\n const currentCountryRegion = countryRegions.find(countryRegion => (countryRegion.ISOCode || '') === marketISOCode);\r\n return (currentCountryRegion && currentCountryRegion.CountryRegionId) || countryRegionId;\r\n }\r\n\r\n public parseRetailException = (resources: IAddressResource): IAddressResponse => {\r\n return {\r\n errorTitle: resources.addressErrorMessageTitle,\r\n errorMessage: resources.addressGenericErrorMessage\r\n };\r\n }\r\n\r\n public isAuthenticatedFlow = (): boolean => {\r\n return this.context.request.user.isAuthenticated;\r\n }\r\n\r\n public getStateProvinces = async (countryRegionId: string): Promise => {\r\n let response: StateProvinceInfo[] = [];\r\n if (this.context && this.context.actionContext) {\r\n try {\r\n const input = new GetStateProvincesInput(countryRegionId, this.context.request.apiSettings);\r\n response = await getStateProvinceAction(input, this.context.actionContext);\r\n } catch (error) {\r\n if (this.telemetry) {\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to get state provinces');\r\n }\r\n }\r\n }\r\n return Promise.resolve(response);\r\n }\r\n\r\n // For any address, check for common requried field else treat it as invalid\\empty address.\r\n public isEmpty = (address: Address): boolean => {\r\n if (address && address.ThreeLetterISORegionName && address.City) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n public addCustomerAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(addAddress, address);\r\n };\r\n\r\n public updateCustomerAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(updateAddress, address);\r\n };\r\n\r\n public updateCustomerPrimaryAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(updatePrimaryAddress, address);\r\n };\r\n\r\n private submitCustomerAddress = (addressAction: IObservableAction, address: Address): Promise => {\r\n address.AddressTypeValue = address.AddressTypeValue || 7; // 7 sets it to HOME by default\r\n\r\n const input = new AddressManagementInput(address);\r\n return this.execAddressAction(addressAction, input, address);\r\n };\r\n\r\n private execAddressAction = async (addressAction: IObservableAction, input: IActionInput | IActionInput[], address: Address): Promise => {\r\n let response: IAddressResponse = {};\r\n\r\n if (this.context && this.context.actionContext) {\r\n try {\r\n const addresses = await addressAction(input, this.context.actionContext);\r\n if (addresses.length > 0) {\r\n response.address = address.RecordId ? address : addresses[addresses.length - 1];\r\n } else {\r\n response.address = address;\r\n }\r\n response.customerAddresses = addresses;\r\n } catch (error) {\r\n if (this.telemetry) {\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to exec address action');\r\n }\r\n response = this.parseRetailException(this.resources);\r\n }\r\n }\r\n return Promise.resolve(response);\r\n };\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { get, set } from 'mobx';\r\n\r\nimport {\r\n Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport {\r\n AddressItemType, IAddressDropdownsData, IAddressItem, IAddressValidationRule\r\n} from './address-format.data';\r\nimport { AddressMetaData } from './address-meta-data';\r\n\r\n/**\r\n *\r\n * Retail Service Address format parser\r\n */\r\nexport class AddressFormat {\r\n private countryRegionsInfo?: CountryRegionInfo[];\r\n private addressPurposes?: AddressPurpose[];\r\n private addressMetaData: AddressMetaData;\r\n\r\n constructor(countryRegionsInfo: CountryRegionInfo[], addressMetaData: AddressMetaData, addressPurposes: AddressPurpose[]) {\r\n this.countryRegionsInfo = countryRegionsInfo;\r\n this.addressMetaData = addressMetaData;\r\n this.addressPurposes = addressPurposes;\r\n }\r\n\r\n public getAddressFormat(countryRegionId: string): IAddressItem[] {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n if (countryRegionInfo) {\r\n return this._getAddressDisplayFormat(countryRegionInfo);\r\n }\r\n return [];\r\n }\r\n\r\n public getCountryFormat(): { key?: string; value?: string }[] {\r\n return (this.countryRegionsInfo || []).map(countryRegion => {\r\n return {\r\n key: countryRegion.CountryRegionId,\r\n value: countryRegion.ShortName\r\n };\r\n });\r\n }\r\n\r\n public getStateFormat(stateProvinceInfo?: StateProvinceInfo[]): { key?: string; value?: string }[] {\r\n return (stateProvinceInfo || []).map(state => {\r\n return {\r\n key: state.StateId,\r\n value: state.StateName\r\n };\r\n });\r\n }\r\n\r\n public getAddressTypeFormat(): { key?: number; value?: string }[] {\r\n return (this.addressPurposes || []).map(addressPurpose => {\r\n return {\r\n key: addressPurpose.AddressType,\r\n value: addressPurpose.Name\r\n };\r\n });\r\n }\r\n\r\n public getPrefilledAddressDropdownData = (stateDefaultSelectionText: string, stateProvinceInfo?: StateProvinceInfo[]): IAddressDropdownsData => {\r\n const defaultStateText = {\r\n key: '',\r\n value: stateDefaultSelectionText\r\n };\r\n const dropdownData: IAddressDropdownsData = {};\r\n\r\n dropdownData[AddressItemType[AddressItemType.ThreeLetterISORegionName]] = this.getCountryFormat();\r\n dropdownData[AddressItemType[AddressItemType.State]] = this.getStateFormat(stateProvinceInfo);\r\n dropdownData[AddressItemType[AddressItemType.State]].unshift(defaultStateText);\r\n dropdownData[AddressItemType[AddressItemType.AddressTypeValue]] = this.getAddressTypeFormat();\r\n\r\n return dropdownData;\r\n }\r\n\r\n public getTwoLetterISORegionName = (countryRegionId: string): string | undefined => {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n\r\n return countryRegionInfo!.ISOCode;\r\n }\r\n\r\n public validateAddressFormat = (address: Address, validationError: Address, countryRegionId: string, propertyName?: string, cityList?:string): boolean => {\r\n let isValid: boolean = true;\r\n let validationtor;\r\n const addressFormat = this.getAddressFormat((address.ThreeLetterISORegionName) || countryRegionId);\r\n\r\n addressFormat.forEach(addressFormatItem => {\r\n if (!propertyName || (propertyName && addressFormatItem.name === propertyName)) {\r\n validationtor = this._inputValidation(addressFormatItem, validationError, address, cityList);\r\n if (validationtor !== undefined) {\r\n isValid = validationtor;\r\n }\r\n }\r\n });\r\n return isValid;\r\n }\r\n\r\n public getTranformedAddress = (result: Microsoft.Maps.ISuggestionResult, stateProvinceInfo?: StateProvinceInfo[]): Address => {\r\n const address: Address = {};\r\n\r\n // Zip Code\r\n if (result.address.postalCode !== undefined) {\r\n address.ZipCode = result.address.postalCode;\r\n } else {\r\n address.ZipCode = '';\r\n }\r\n\r\n // State\r\n if (stateProvinceInfo) {\r\n const selectedState = stateProvinceInfo.find(state => state.StateName === result.address.adminDistrict);\r\n if (!selectedState) {\r\n address.State = '';\r\n address.StateName = result.address.adminDistrict;\r\n } else {\r\n address.State = selectedState.StateId;\r\n address.StateName = selectedState.StateName;\r\n }\r\n }\r\n\r\n // Street\r\n if(result.address.addressLine !== undefined) {\r\n address.Street = result.address.addressLine;\r\n } else {\r\n address.Street = ' ';\r\n }\r\n\r\n // City\r\n if(result.address.locality !== undefined) {\r\n address.City = result.address.locality;\r\n } else {\r\n address.City = '';\r\n }\r\n\r\n // District\r\n if(result.address.district !== undefined) {\r\n address.DistrictName = result.address.district;\r\n address.CountyName = result.address.district;\r\n } else {\r\n address.DistrictName = '';\r\n }\r\n\r\n // formatted Address\r\n address.FullAddress = result.address.formattedAddress;\r\n\r\n return address;\r\n }\r\n\r\n private _inputValidation(addressFormatItem: IAddressItem, validationError: Address, address: Address, cityList?:string): boolean | undefined {\r\n set(validationError, { [addressFormatItem.name]: null });\r\n for (const validationRule of (addressFormatItem.validationRules || [])) {\r\n if (!this._validateRegEx(address, addressFormatItem.name, validationRule)) {\r\n set(validationError, { [addressFormatItem.name]: validationRule.message });\r\n return false;\r\n } else \r\n if (cityList && addressFormatItem.name===\"City\" && !this._validateCity(address, cityList)){\r\n set(validationError, { [addressFormatItem.name]: \"Please input a valid city\" });\r\n return false\r\n } \r\n }\r\n return undefined;\r\n }\r\n private _validateRegEx = (address: Address, propertyName: string, validationRule: IAddressValidationRule): boolean => {\r\n if (validationRule.regEx && validationRule.regEx.length > 0) {\r\n const regex = new RegExp(validationRule.regEx);\r\n return regex.test(get(address, propertyName) || '');\r\n }\r\n return true;\r\n }\r\n\r\n private _validateCity = (address: Address, cityList?:string):boolean => {\r\n let citylist = cityList && cityList.split(\"|\");\r\n if(citylist && citylist.some(city=> city.toUpperCase() === address.City?.toUpperCase())){\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n private _getCountryRegionInfo(countryRegionId: string): CountryRegionInfo | undefined {\r\n return (this.countryRegionsInfo || []).find(countryRegion => {\r\n return ((countryRegion.CountryRegionId || '').toLowerCase() === countryRegionId.toLowerCase());\r\n });\r\n }\r\n\r\n private _getAddressDisplayFormat(countryRegionInfo: CountryRegionInfo): IAddressItem[] {\r\n const addressDisplayItem: IAddressItem[] = [];\r\n\r\n if (countryRegionInfo && countryRegionInfo.AddressFormatLines) {\r\n const AddressTypeItem = this._extendAddressDisplayFormat(AddressItemType.AddressTypeValue, true);\r\n if (AddressTypeItem) {\r\n addressDisplayItem.push(AddressTypeItem);\r\n }\r\n\r\n const nameDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Name, true);\r\n if (nameDisplayItem) {\r\n addressDisplayItem.push(nameDisplayItem);\r\n }\r\n\r\n countryRegionInfo.AddressFormatLines.forEach(formatLine => {\r\n if (formatLine.AddressComponentNameValue) {\r\n const addressItem = this.addressMetaData.getItemFormat(formatLine.AddressComponentNameValue);\r\n if (addressItem) {\r\n addressItem.isNewLine = formatLine.NewLine || false;\r\n addressDisplayItem.push(addressItem);\r\n }\r\n }\r\n });\r\n\r\n const phoneDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Phone, false);\r\n if (phoneDisplayItem) {\r\n addressDisplayItem.push(phoneDisplayItem);\r\n }\r\n\r\n const isPrimaryDisplayItem = this._extendAddressDisplayFormat(AddressItemType.IsPrimary, false);\r\n if (isPrimaryDisplayItem) {\r\n addressDisplayItem.push(isPrimaryDisplayItem);\r\n }\r\n }\r\n\r\n return addressDisplayItem;\r\n }\r\n\r\n private _extendAddressDisplayFormat(type: AddressItemType, isNewLine: boolean): IAddressItem | undefined {\r\n const addressItem = this.addressMetaData.getItemFormat(type);\r\n if (addressItem) {\r\n addressItem.isNewLine = isNewLine;\r\n }\r\n return addressItem;\r\n }\r\n}\r\n","import {\r\n AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressItem,\r\n IAddressValidationRule\r\n} from './address-format.data';\r\nimport { IAddressResource } from './address-module.data';\r\n\r\n/**\r\n * Address meta data\r\n */\r\nexport class AddressMetaData {\r\n\r\n private metaData: IAddressItem[] = [];\r\n private resources: IAddressResource;\r\n private requiredFieldRegEx: string = '\\\\S';\r\n private resourcesPrefix: string = 'address';\r\n private maxLength: number = 64;\r\n private streetNumberMaxLength: number = 20;\r\n private stateMaxLength: number = 10;\r\n private requiredFields: AddressItemType[];\r\n private excludedTypes: AddressItemType[];\r\n\r\n constructor(resources: IAddressResource, excluded?: AddressItemType[], required?: AddressItemType[]) {\r\n this.resources = resources || {};\r\n this.excludedTypes = excluded || [];\r\n this.requiredFields =\r\n required !== undefined\r\n ? required\r\n : [\r\n AddressItemType.Name,\r\n AddressItemType.ZipCode,\r\n AddressItemType.City,\r\n AddressItemType.State,\r\n AddressItemType.ThreeLetterISORegionName,\r\n AddressItemType.Street,\r\n AddressItemType.County,\r\n AddressItemType.Phone,\r\n // AddressItemType.StreetNumber,\r\n AddressItemType.DistrictName,\r\n ];\r\n this._init();\r\n }\r\n\r\n public getItemFormat(id: number): IAddressItem | undefined {\r\n return this.metaData.find((item) => {\r\n return item.type === id;\r\n });\r\n }\r\n\r\n private _init(): void {\r\n this._addItem(AddressItemType.Name, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Phone, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.ZipCode, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.City, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.County, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.State, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.ThreeLetterISORegionName, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.Street, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.DistrictName, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.StreetNumber, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.BuildingCompliment, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Postbox, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.House_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Flat_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.CountryOKSMCode_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.AddressTypeValue, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.IsPrimary, AddressItemDisplayType.Checkbox);\r\n }\r\n\r\n private _addItem(type: AddressItemType, displayType: AddressItemDisplayType): void {\r\n if (this.excludedTypes.includes(type)) {\r\n return;\r\n }\r\n\r\n const nameKey = AddressItemType[type].replace('_', '');\r\n\r\n // find out if currentItem is required field\r\n const validationRules = this._validationRules(type, nameKey);\r\n let isRequired = false;\r\n validationRules.forEach(rule => {\r\n if (rule.type === AddressValidationRuleType.Required) {\r\n isRequired = true;\r\n }\r\n });\r\n\r\n // if no optional string is provided in resource file, use the original label text\r\n const optionalString = this.resources[`${this.resourcesPrefix}${nameKey}LabelOptional`] || this.resources[`${this.resourcesPrefix}${nameKey}Label`];\r\n const item: IAddressItem = {\r\n type,\r\n displayType,\r\n name: AddressItemType[type],\r\n label: isRequired ? this.resources[`${this.resourcesPrefix}${nameKey}Label`] : optionalString,\r\n maxLength: this._getMaxFieldLength(type),\r\n validationRules: validationRules,\r\n isNewLine: true,\r\n autocompleteType:this._getAutocompleteType(type),\r\n };\r\n\r\n this.metaData.push(item);\r\n }\r\n\r\n private _getMaxFieldLength(type: AddressItemType): number {\r\n if (AddressItemType.StreetNumber === type) {\r\n return this.streetNumberMaxLength;\r\n } \r\n else if (AddressItemType.State === type) {\r\n return this.stateMaxLength;\r\n }\r\n return this.maxLength;\r\n }\r\n\r\n private _getAutocompleteType(type: AddressItemType): string {\r\n if(AddressItemType.Street === type) {\r\n return 'street-address'\r\n }\r\n else if(AddressItemType.DistrictName === type) {\r\n return 'address-level3'\r\n }\r\n else if(AddressItemType.City === type) {\r\n return 'address-level2'\r\n }\r\n else if(AddressItemType.ZipCode === type) {\r\n return 'postal-code'\r\n }\r\n return ''\r\n }\r\n\r\n private _validationRules(type: AddressItemType, name: string): IAddressValidationRule[] {\r\n const validationRules: IAddressValidationRule[] = [];\r\n\r\n\r\n for (const ruleType of Object.keys(AddressValidationRuleType)) {\r\n const key = `${this.resourcesPrefix}${name}${ruleType}`;\r\n const message = this.resources[`${key}ErrorMessage`];\r\n switch (ruleType) {\r\n case AddressValidationRuleType.Required: {\r\n if (this.requiredFields.find((itemType: AddressItemType) => itemType === type)) {\r\n validationRules.push(this._validationRule(ruleType, this.requiredFieldRegEx, message));\r\n }\r\n break;\r\n }\r\n default:\r\n }\r\n }\r\n return validationRules;\r\n }\r\n\r\n private _validationRule(type: AddressValidationRuleType, regEx: string, message: string): IAddressValidationRule {\r\n return {\r\n type,\r\n regEx,\r\n message\r\n };\r\n }\r\n\r\n}","import { Heading } from '@msdyn365-commerce-modules/data-types';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport enum AddressOperation {\r\n Add = 'Add',\r\n Show = 'Show',\r\n Update = 'Update',\r\n List = 'List'\r\n}\r\n\r\nexport enum AddressType {\r\n Shipping = 'Shipping',\r\n Billing = 'Billing',\r\n Company = 'Company'\r\n}\r\n\r\nexport interface IDropdownDisplayData {\r\n [index: string]: { key?: string; value?: string }[];\r\n}\r\n\r\nexport interface IAddressResponse {\r\n errorTitle?: string;\r\n errorMessage?: string;\r\n customerAddresses?: Address[];\r\n address?: Address;\r\n}\r\n\r\nexport interface IAddressConfig {\r\n heading?: Heading;\r\n disclaimer?: string;\r\n primaryAddressSectionHeading?: Heading;\r\n otherAddressSectionHeading?: Heading;\r\n addAddressHeading?: Heading;\r\n editAddressHeading?: Heading;\r\n}\r\n\r\nexport interface IAddressResource {\r\n addressAddButtonText: string;\r\n addressAddButtonAriaLabel: string;\r\n addressPrimaryButtonText: string;\r\n addressPrimaryButtonAriaLabel: string;\r\n addressEditButtonText: string;\r\n addressEditButtonAriaLabel: string;\r\n addressRemoveButtonText: string;\r\n addressRemoveButtonAriaLabel: string;\r\n addressSaveButtonText: string;\r\n addressSaveButtonAriaLabel: string;\r\n addressCancelButtonText: string;\r\n addressCancelButtonAriaLabel: string;\r\n addressStateDefaultSelectionText: string;\r\n addressNameLabel: string;\r\n addressNameLabelOptional?: string;\r\n addressNameRequiredErrorMessage: string;\r\n addressPhoneLabel: string;\r\n addressPhoneLabelOptional?: string;\r\n addressPhoneRequiredErrorMessage: string;\r\n addressZipCodeLabel: string;\r\n addressZipCodeLabelOptional?: string;\r\n addressZipCodeRequiredErrorMessage: string;\r\n addressCityLabel: string;\r\n addressCityLabelOptional?: string;\r\n addressCityRequiredErrorMessage: string;\r\n addressCountyLabel: string;\r\n addressCountyLabelOptional?: string;\r\n addressCountyRequiredErrorMessage: string;\r\n addressStateLabel: string;\r\n addressStateLabelOptional?: string;\r\n addressStateRequiredErrorMessage: string;\r\n addressThreeLetterISORegionNameLabel: string;\r\n addressThreeLetterISORegionNameLabelOptional?: string;\r\n addressThreeLetterISORegionNameRequiredErrorMessage: string;\r\n addressStreetRequiredErrorMessage: string;\r\n addressDistrictLabel: string;\r\n addressDistrictLabelOptional?: string;\r\n addressDistrictRequiredErrorMessage: string;\r\n addressStreetNumberLabel: string;\r\n addressStreetNumberLabelOptional?: string;\r\n addressStreetNumberRequiredErrorMessage: string;\r\n addressBuildingComplimentLabel: string;\r\n addressBuildingComplimentLabelOptional?: string;\r\n addressBuildingComplimentRequiredErrorMessage: string;\r\n addressPostboxLabel: string;\r\n addressPostboxLabelOptional?: string;\r\n addressPostboxRequiredErrorMessage: string;\r\n addressHouseRULabel: string;\r\n addressHouseRULabelOptional?: string;\r\n addressHouseRURequiredErrorMessage: string;\r\n addressFlatRULabel: string;\r\n addressFlatRULabelOptional?: string;\r\n addressFlatRURequiredErrorMessage: string;\r\n addressCountryOKSMCodeRULabel: string;\r\n addressCountryOKSMCodeRURequiredErrorMessage: string;\r\n addressErrorMessageTitle: string;\r\n addressGenericErrorMessage: string;\r\n addressEmptyListAddressMessage: string;\r\n}\r\n\r\nexport interface IAddressModuleData {\r\n id: string;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressAlert {\r\n message?: string;\r\n}\r\n\r\nconst AdressAlert: React.FC = ({ message }) => (\r\n \r\n {\r\n message &&\r\n <>\r\n {message}\r\n \r\n }\r\n \r\n);\r\n\r\nexport default AdressAlert;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressCheckbox {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n isChecked: boolean;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst AdressCheckbox: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n type,\r\n isChecked,\r\n additionalAddributes,\r\n telemetryContent,\r\n autoFocus,\r\n onChange\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AdressCheckbox;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressDropdown {\r\n id: string;\r\n disabled: boolean;\r\n name: string;\r\n className: string;\r\n value: string | number;\r\n additionalAddributes?: object;\r\n displayData: { key?: string | number; value?: string }[];\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst getDropdownItem = (key?: string | number, value?: string , selectedValue?: string | number): React.ReactNode => {\r\n let isSelected: boolean;\r\n if (typeof (key) === 'number') {\r\n isSelected = key === selectedValue;\r\n } else {\r\n isSelected = typeof(selectedValue)==='string' && (key || '').toLowerCase() === (selectedValue || '').toLowerCase();\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst AdressDropdown: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n value,\r\n additionalAddributes,\r\n displayData,\r\n onChange,\r\n disabled\r\n\r\n}) => (\r\n \r\n {displayData && displayData.map(item =>\r\n (\r\n getDropdownItem(item.key, item.value, value)\r\n ))\r\n }\r\n \r\n );\r\n\r\nexport default AdressDropdown;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressLabel {\r\n id: string;\r\n text: string;\r\n}\r\n\r\nconst AdressLabel: React.FC = ({\r\n id,\r\n text\r\n}) => (\r\n \r\n );\r\n\r\nexport default AdressLabel;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\r\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport classname from 'classnames';\r\nimport { get } from 'mobx';\r\nimport * as React from 'react';\r\nimport {\r\n AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressDropdownsData,\r\n IAddressItem, IAddressValidationRule\r\n} from '../address-format.data';\r\nimport { AddressType, IAddressResource, IAddressResponse } from '../address-module.data';\r\nimport AddressAlertComponent from './address-alert';\r\nimport AddressButtonComponent from './address-button';\r\nimport AdressCheckboxComponent from './address-checkbox';\r\nimport AdressDropdownComponent from './address-dropdown';\r\nimport AddressErrorMessageComponent from './address-error-message';\r\nimport AddressErrorTitleComponent from './address-error-title';\r\nimport AddressInputComponent from './address-input';\r\nimport AddressLabelComponent from './address-label';\r\n\r\nexport interface IAddressAddInputProps {\r\n isUpdating?: boolean;\r\n hasError?: boolean;\r\n hasExternalSubmitGroup?: boolean;\r\n addressType: AddressType;\r\n addressFormat: IAddressItem[];\r\n defaultCountryRegionId: string;\r\n defaultAddressType: number;\r\n selectedAddress?: Address;\r\n dropdownDisplayData: IAddressDropdownsData;\r\n resources: IAddressResource;\r\n addressActionResponse?: IAddressResponse;\r\n addAddressHeading?: HeadingData;\r\n editAddressHeading?: HeadingData;\r\n validationError?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onInputChange(event: React.ChangeEvent): void;\r\n onDropdownChange(event: React.ChangeEvent): void;\r\n onSave?(): void;\r\n onCancel?(): void;\r\n searchAddress(): React.ReactNode | null;\r\n allowCountryChange?: boolean; \r\n}\r\n\r\nexport interface IAddressError {\r\n AddressError: INodeProps;\r\n title: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressAddItem {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n\r\n}\r\n\r\nexport interface IAddressAddUpdateProps {\r\n AddressForm: INodeProps;\r\n heading: React.ReactNode;\r\n items: IAddressAddItem[];\r\n hasError: boolean;\r\n error: IAddressError;\r\n isShowSaveButton: boolean;\r\n saveButton: React.ReactNode;\r\n isShowCancelButton: boolean;\r\n cancelButton: React.ReactNode;\r\n searchAddress: React.ReactNode | null;\r\n}\r\n\r\nconst getRequriedAttribute = (validationRules?: IAddressValidationRule[]): object => {\r\n const requriedRule = (validationRules || []).find(validationRule => {\r\n return validationRule.type === AddressValidationRuleType.Required;\r\n });\r\n\r\n return requriedRule ? { 'aria-required': true } : {};\r\n};\r\n\r\nconst getAddessItems = (selectedAddress: Address, props: IAddressAddInputProps, cityList?:string): IAddressAddItem[] => {\r\n const { addressFormat, addressType, dropdownDisplayData, defaultCountryRegionId, defaultAddressType, validationError = {}, onInputChange, onDropdownChange } = props;\r\n const citylist = cityList && cityList.split(\"|\");\r\n const datalist:React.ReactNode | null = (\r\n {citylist && citylist.map((city:string)=>(\r\n \r\n ))}\r\n );\r\n \r\n // @ts-ignore\r\n return addressFormat.map((addressFormatItem, index) => {\r\n const elementId = `${addressType.toLowerCase()}_address${addressFormatItem.name.toLowerCase()}`;\r\n const errorMessage = get(validationError, addressFormatItem.name);\r\n const className = classname('msc-address-form__item', `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`, { 'msc-address-form__item-newline': addressFormatItem.isNewLine, 'address-form__item-invalid': errorMessage });\r\n let input;\r\n const lockShippingAddress = elementId === 'shipping_addressthreeletterisoregionname' && !props.allowCountryChange;\r\n \r\n \r\n\r\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\r\n input = (\r\n
\r\n \r\n {addressFormatItem.name ===\"City\"? datalist : null}\r\n
\r\n );\r\n } else if (addressFormatItem.displayType === AddressItemDisplayType.Checkbox) {\r\n input = (\r\n \r\n );\r\n } else {\r\n const displayData = dropdownDisplayData[addressFormatItem.name];\r\n let selectedValue = selectedAddress[addressFormatItem.name];\r\n\r\n if (addressFormatItem.type === AddressItemType.ThreeLetterISORegionName) {\r\n selectedValue = selectedValue || defaultCountryRegionId;\r\n }\r\n\r\n if (addressFormatItem.type === AddressItemType.AddressTypeValue) {\r\n selectedValue = selectedValue || defaultAddressType;\r\n }\r\n\r\n input = (\r\n \r\n );\r\n }\r\n\r\n return {\r\n key: addressFormatItem.name,\r\n AddressItem: { className: className, id: `${elementId}_container` },\r\n label: ,\r\n alert: ,\r\n input: input,\r\n };\r\n });\r\n};\r\n\r\nexport const AddressAddUpdate = (props: IAddressAddInputProps, cityList?:string): IAddressAddUpdateProps => {\r\n const { editAddressHeading, addAddressHeading, selectedAddress = {}, resources, hasError, onCancel, onSave, hasExternalSubmitGroup, isUpdating, addressActionResponse, telemetryContent, searchAddress } = props;\r\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n\r\n return {\r\n AddressForm: { className: `msc-address-form ${selectedAddress.ThreeLetterISORegionName}` },\r\n heading: heading && ,\r\n items: getAddessItems(selectedAddress, props, cityList),\r\n searchAddress: searchAddress(),\r\n isShowSaveButton: !hasExternalSubmitGroup,\r\n saveButton: onSave && (\r\n \r\n ),\r\n isShowCancelButton: !hasExternalSubmitGroup,\r\n cancelButton: onCancel && (\r\n \r\n ),\r\n hasError: hasError || false,\r\n error: {\r\n AddressError: { className: 'msc-address-form__error' },\r\n title: addressActionResponse && addressActionResponse.errorTitle && ,\r\n message: addressActionResponse && addressActionResponse.errorMessage && \r\n }\r\n };\r\n};","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressButton {\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n onClick(event: React.MouseEvent): void;\r\n}\r\n\r\nconst AddressButton: React.FC = ({ className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, text);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n {text}\r\n );\r\n};\r\n\r\nexport default AddressButton;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressInput {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n value: string;\r\n maxLength?: number;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n autocomplete: string;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst AdressInput: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n type,\r\n value,\r\n maxLength,\r\n additionalAddributes,\r\n autoFocus,\r\n telemetryContent,\r\n autocomplete,\r\n onChange\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AdressInput;\r\n","export enum AddressItemDisplayType {\r\n Input = 'Input',\r\n Dropdown = 'Dropdown',\r\n Checkbox = 'Checkbox'\r\n}\r\n\r\nexport enum AddressValidationRuleType {\r\n Required = 'Required',\r\n Format = 'Format'\r\n}\r\n\r\nexport enum AddressItemType {\r\n Name = 1001,\r\n Phone = 1002,\r\n IsPrimary = 1003,\r\n AddressTypeValue = 1004,\r\n ZipCode = 1,\r\n City = 2,\r\n County = 3,\r\n State = 4,\r\n ThreeLetterISORegionName = 5,\r\n Street = 6,\r\n DistrictName = 7,\r\n StreetNumber = 8,\r\n BuildingCompliment = 9,\r\n Postbox = 10,\r\n House_RU = 21,\r\n Flat_RU = 22,\r\n CountryOKSMCode_RU = 23\r\n}\r\n\r\nexport interface IAddressItem {\r\n name: string;\r\n type: AddressItemType;\r\n label: string;\r\n maxLength: number;\r\n displayType: AddressItemDisplayType;\r\n validationRules?: IAddressValidationRule[];\r\n isNewLine: boolean;\r\n autocompleteType: string\r\n}\r\n\r\nexport interface IAddressValidationRule {\r\n type: AddressValidationRuleType;\r\n regEx: string;\r\n message: string;\r\n}\r\n\r\nexport interface IAddressDropdownsData {\r\n [index: string]: { key?: string | number; value?: string }[];\r\n}\r\n\r\nexport interface IAddressFormatData {\r\n id: string;\r\n}","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressErrorMessage {\r\n message: string;\r\n}\r\n\r\nconst AdressErrorMessage: React.FC = ({ message }) => (\r\n

\r\n {message}\r\n

\r\n);\r\n\r\nexport default AdressErrorMessage;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressErrorTitle {\r\n title: string;\r\n}\r\n\r\nconst AdressErrorTitle: React.FC = ({ title }) => (\r\n

\r\n {title}\r\n

\r\n);\r\n\r\nexport default AdressErrorTitle;\r\n"],"names":["GetNZPostAddressResponseActionInput","constructor","search","getCacheKey","getCacheObjectType","dataCacheType","this","async","getNZAddressResponseAction","input","ctx","addressResult","success","getAddressAsync","callerContext","then","response","Error","catch","error","trace","message","createObservableDataAction","action","args","GetNZPostAddressDetailsActionInput","addressId","getNZAddressResponseDetailsAction","addressDetailsResult","getAddressDetailAsync","AddressSearch","React","props","super","clearAddress","setState","searchAddress","selectedAddress","undefined","formattedAddress","getNZAddress","e","inputText","_SearchAddressInputRef","current","value","errorMessage","addressSelectedCallback","length","context","actionContext","result","addressList","addresses","messageID","message_id","showAddressList","console","log","getNZAddressDetails","fullAddress","formattedAddressObject","_getFormattedAddressObject","address","state","toggleManualAddress","toggleManualAddressCallback","manualAddressLabel","searchAddressLabel","render","manualAddress","className","ref","type","onChange","classname","placeholder","map","index","address_id","full_address","key","role","onClick","building_name","_getFormattedBuildingName","street_number","_getFormattedStreetNumber","street","_getFormattedStreet","suburb","city","postcode","country","unit_type","unit_value","floor","buildingName","street_alpha","streetNumDetails","street_type","road_suffix_name","rural_delivery_number","_ref","isNewLine","isShowLabel","labelText","name","toLowerCase","isEmpty","mainClass","AddressShow","addressFormat","addressPurposes","AddressDetail","items","item","AddressItemType","AddressTypeValue","addressType","find","addressTypeValue","AddressType","toString","Name","description","AddressDetailItemComponent","Object","assign","Phone","label","AutoSuggest","telemetry","autoSuggestOptions","BingMapsApiKey","countryCode","defaultLanguageId","excludedAddressFields","attachAutoSuggest","inputId","containerId","selectedSuggestionCallback","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","_objectSpread","_document$querySelect","AutosuggestManager","attachAutosuggest","MsDyn365","isBrowser","document","querySelector","setAttribute","setTimeout","_document$querySelect2","errorCallback","debug","credentials","bingMapsApiKey","changeAutoSuggestionCountryCode","setOptions","disposeAutoSuggest","_this$autoSuggestMana","_this$autoSuggestMana2","detachAutosuggest","dispose","_loadMapAPI","storeSelectorStateManager","loadMapApi","lang","market","AddressCommon","resources","getDefaultCountryRegionId","countryRegionId","countryRegions","marketISOCode","currentCountryRegion","countryRegion","ISOCode","CountryRegionId","parseRetailException","errorTitle","addressErrorMessageTitle","addressGenericErrorMessage","isAuthenticatedFlow","request","user","isAuthenticated","getStateProvinces","GetStateProvincesInput","apiSettings","getStateProvinceAction","Promise","resolve","ThreeLetterISORegionName","City","addCustomerAddress","submitCustomerAddress","addAddress","updateCustomerAddress","updateAddress","updateCustomerPrimaryAddress","updatePrimaryAddress","addressAction","AddressManagementInput","execAddressAction","RecordId","customerAddresses","AddressFormat","countryRegionsInfo","addressMetaData","getPrefilledAddressDropdownData","stateDefaultSelectionText","stateProvinceInfo","defaultStateText","dropdownData","getCountryFormat","State","getStateFormat","unshift","getAddressTypeFormat","getTwoLetterISORegionName","_getCountryRegionInfo","validateAddressFormat","validationError","propertyName","cityList","validationtor","isValid","getAddressFormat","forEach","addressFormatItem","_inputValidation","getTranformedAddress","postalCode","ZipCode","selectedState","StateName","adminDistrict","StateId","addressLine","Street","locality","district","DistrictName","CountyName","FullAddress","_validateRegEx","validationRule","regEx","RegExp","test","get","_validateCity","citylist","split","some","_address$City","toUpperCase","countryRegionInfo","_getAddressDisplayFormat","ShortName","addressPurpose","set","validationRules","addressDisplayItem","AddressFormatLines","AddressTypeItem","_extendAddressDisplayFormat","push","nameDisplayItem","formatLine","AddressComponentNameValue","addressItem","getItemFormat","NewLine","phoneDisplayItem","isPrimaryDisplayItem","IsPrimary","AddressMetaData","excluded","required","metaData","requiredFieldRegEx","resourcesPrefix","maxLength","streetNumberMaxLength","stateMaxLength","excludedTypes","requiredFields","County","_init","id","_addItem","AddressItemDisplayType","Input","Dropdown","StreetNumber","BuildingCompliment","Postbox","House_RU","Flat_RU","CountryOKSMCode_RU","Checkbox","displayType","includes","nameKey","replace","_validationRules","isRequired","rule","AddressValidationRuleType","Required","optionalString","_getMaxFieldLength","autocompleteType","_getAutocompleteType","ruleType","keys","itemType","_validationRule","AddressOperation","isChecked","additionalAddributes","telemetryContent","autoFocus","payLoad","getPayloadObject","attributes","getTelemetryAttributes","checked","displayData","disabled","getDropdownItem","selectedValue","isSelected","text","htmlFor","getRequriedAttribute","getAddessItems","dropdownDisplayData","defaultCountryRegionId","defaultAddressType","onInputChange","onDropdownChange","datalist","elementId","lockShippingAddress","allowCountryChange","AddressInputComponent","list","autocomplete","AdressCheckboxComponent","AdressDropdownComponent","AddressItem","AddressLabelComponent","alert","AddressAlertComponent","AddressAddUpdate","editAddressHeading","addAddressHeading","hasError","onCancel","onSave","hasExternalSubmitGroup","isUpdating","addressActionResponse","heading","AddressForm","Heading","isShowSaveButton","saveButton","AddressButtonComponent","addressSaveButtonText","ariaLabel","addressSaveButtonAriaLabel","glyph","isShowCancelButton","cancelButton","addressCancelButtonText","addressCancelButtonAriaLabel","AddressError","title","AddressErrorTitleComponent","AddressErrorMessageComponent","autoComplete"],"sourceRoot":""}