{"version":3,"file":"static/js/26.ee67b7236e8af52e541b.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/common/citta-address/common/address-format.data.ts?ba2d","webpack://Citta2.0/./src/common/citta-address/common/address-common.ts?030a","webpack://Citta2.0/./src/common/citta-address/common/address-format.ts?6dce","webpack://Citta2.0/./src/common/citta-address/common/address-meta-data.ts?1824","webpack://Citta2.0/./src/common/citta-address/common/address-module.data.ts?6e85","webpack://Citta2.0/./src/common/citta-address/common/components/address-checkbox.tsx?4072","webpack://Citta2.0/./src/common/citta-address/common/components/address-add.tsx?c69b","webpack://Citta2.0/./src/common/citta-address/common/components/address-button.tsx?38b1","webpack://Citta2.0/./src/common/citta-address/common/components/address-error-message.tsx?acd3","webpack://Citta2.0/./src/common/citta-address/common/components/address-error-title.tsx?cac0","webpack://Citta2.0/./src/common/citta-address/common/components/address-input.tsx?c189","webpack://Citta2.0/./src/common/citta-address/common/components/address-alert.tsx?3940","webpack://Citta2.0/./src/common/citta-address/common/components/address-dropdown.tsx?39eb","webpack://Citta2.0/./src/common/citta-address/common/components/address-label.tsx?a836"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nexport 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}\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { 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\nimport {\r\n addAddress, AddressManagementInput, updateAddress, updatePrimaryAddress\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport { getStateProvinceAction, GetStateProvincesInput } from '../actions/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 readonly context: ICoreContext;\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly 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.State && address.City) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n public addCustomerAddress = async (address: Address): Promise => {\r\n return this.submitCustomerAddress(addAddress, address);\r\n };\r\n\r\n public updateCustomerAddress = async (address: Address): Promise => {\r\n return this.submitCustomerAddress(updateAddress, address);\r\n };\r\n\r\n public updateCustomerPrimaryAddress = async (address: Address): Promise => {\r\n return this.submitCustomerAddress(updatePrimaryAddress, address);\r\n };\r\n\r\n private readonly submitCustomerAddress = async (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 readonly 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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport {\r\n Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { get, set } from 'mobx';\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 readonly countryRegionsInfo?: CountryRegionInfo[];\r\n\r\n private readonly addressPurposes?: AddressPurpose[];\r\n\r\n private readonly 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): 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);\r\n if (validationtor !== undefined) {\r\n isValid = validationtor;\r\n }\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): 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 }\r\n }\r\n return undefined;\r\n }\r\n\r\n private readonly _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 _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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport {\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 readonly metaData: IAddressItem[] = [];\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly requiredFieldRegEx: string = '\\\\S';\r\n\r\n private readonly resourcesPrefix: string = 'address';\r\n\r\n private readonly maxLength: number = 64;\r\n\r\n private readonly requiredFields: AddressItemType[];\r\n\r\n private readonly 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 = required !== undefined ? required : [AddressItemType.Name, AddressItemType.ZipCode, AddressItemType.City, AddressItemType.State, AddressItemType.ThreeLetterISORegionName, AddressItemType.Street];\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.maxLength,\r\n validationRules,\r\n isNewLine: true\r\n };\r\n\r\n this.metaData.push(item);\r\n }\r\n\r\n private _validationRules(type: AddressItemType, name: string): IAddressValidationRule[] {\r\n const validationRules: IAddressValidationRule[] = [];\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}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\nimport { Heading } from '@msdyn365-commerce-modules/data-types';\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 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 addressDistrictNameLabel: string;\r\n addressDistrictNameLabelOptional?: 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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\r\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport { get } from 'mobx';\r\nimport * as React from 'react';\r\n\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}\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\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}\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): IAddressAddItem[] => {\r\n const { addressFormat, addressType, dropdownDisplayData, defaultCountryRegionId, defaultAddressType, validationError = {}, onInputChange, onDropdownChange } = props;\r\n\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\r\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\r\n input = (\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, id: `${elementId}_container` },\r\n label: ,\r\n alert: ,\r\n input\r\n };\r\n });\r\n};\r\n\r\nexport const AddressAddUpdate = (props: IAddressAddInputProps): IAddressAddUpdateProps => {\r\n const { editAddressHeading, addAddressHeading, selectedAddress = {}, resources, hasError, onCancel, onSave, hasExternalSubmitGroup, isUpdating, addressActionResponse, telemetryContent } = props;\r\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n\r\n return {\r\n AddressForm: { className: 'msc-address-form' },\r\n heading: heading && ,\r\n items: getAddessItems(selectedAddress, props),\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { 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 role?: string;\r\n onClick(event: React.MouseEvent): void;\r\n}\r\n\r\nconst AddressButton: React.FC = ({ className, text, ariaLabel, disabled, telemetryContent, onClick, role }) => {\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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { 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 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 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * 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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressDropdown {\r\n id: string;\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}) => (\r\n \r\n {displayData && displayData.map(item => (\r\n getDropdownItem(item.key, item.value, value)\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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\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"],"names":["AddressItemDisplayType","AddressValidationRuleType","AddressItemType","AddressCommon","constructor","context","resources","telemetry","getDefaultCountryRegionId","countryRegionId","countryRegions","market","marketISOCode","currentCountryRegion","find","countryRegion","ISOCode","CountryRegionId","parseRetailException","errorTitle","addressErrorMessageTitle","errorMessage","addressGenericErrorMessage","isAuthenticatedFlow","this","request","user","isAuthenticated","getStateProvinces","async","response","actionContext","input","GetStateProvincesInput","apiSettings","getStateProvinceAction","error","debug","Promise","resolve","isEmpty","address","ThreeLetterISORegionName","State","City","addCustomerAddress","submitCustomerAddress","addAddress","updateCustomerAddress","updateAddress","updateCustomerPrimaryAddress","updatePrimaryAddress","addressAction","AddressTypeValue","AddressManagementInput","execAddressAction","addresses","length","RecordId","customerAddresses","AddressFormat","countryRegionsInfo","addressMetaData","addressPurposes","getPrefilledAddressDropdownData","stateDefaultSelectionText","stateProvinceInfo","defaultStateText","key","value","dropdownData","getCountryFormat","getStateFormat","unshift","getAddressTypeFormat","getTwoLetterISORegionName","_getCountryRegionInfo","validateAddressFormat","validationError","propertyName","validationtor","isValid","getAddressFormat","forEach","addressFormatItem","name","_inputValidation","undefined","getTranformedAddress","result","postalCode","ZipCode","selectedState","state","StateName","adminDistrict","StateId","addressLine","Street","locality","district","DistrictName","CountyName","FullAddress","formattedAddress","_validateRegEx","validationRule","regEx","RegExp","test","get","countryRegionInfo","_getAddressDisplayFormat","map","ShortName","addressPurpose","AddressType","Name","set","validationRules","message","toLowerCase","addressDisplayItem","AddressFormatLines","AddressTypeItem","_extendAddressDisplayFormat","push","nameDisplayItem","formatLine","AddressComponentNameValue","addressItem","getItemFormat","isNewLine","NewLine","phoneDisplayItem","Phone","isPrimaryDisplayItem","IsPrimary","type","AddressMetaData","excluded","required","metaData","requiredFieldRegEx","resourcesPrefix","maxLength","excludedTypes","requiredFields","_init","id","item","_addItem","Input","County","Dropdown","StreetNumber","BuildingCompliment","Postbox","House_RU","Flat_RU","CountryOKSMCode_RU","Checkbox","displayType","includes","nameKey","replace","_validationRules","isRequired","rule","Required","optionalString","label","ruleType","Object","keys","itemType","_validationRule","AddressOperation","_ref","className","isChecked","additionalAddributes","telemetryContent","autoFocus","onChange","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","assign","checked","getRequriedAttribute","getAddessItems","selectedAddress","props","addressFormat","addressType","dropdownDisplayData","defaultCountryRegionId","defaultAddressType","onInputChange","onDropdownChange","index","elementId","classname","AddressInputComponent","AdressCheckboxComponent","displayData","selectedValue","AdressDropdownComponent","AddressItem","AddressLabelComponent","text","alert","AddressAlertComponent","AddressAddUpdate","editAddressHeading","addAddressHeading","hasError","onCancel","onSave","hasExternalSubmitGroup","isUpdating","addressActionResponse","heading","AddressForm","Heading","items","isShowSaveButton","saveButton","AddressButtonComponent","addressSaveButtonText","ariaLabel","addressSaveButtonAriaLabel","disabled","onClick","isShowCancelButton","cancelButton","addressCancelButtonText","addressCancelButtonAriaLabel","AddressError","title","AddressErrorTitleComponent","AddressErrorMessageComponent","role","getDropdownItem","isSelected","htmlFor"],"sourceRoot":""}