{"version":3,"file":"static/js/30.ed7492074890d562261b.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/checkout-section-container/components/loading.tsx?edc6","webpack://Citta2.0/./src/modules/checkout-section-container/checkout-section-container.tsx?5c75","webpack://Citta2.0/./src/modules/checkout-section-container/checkout-section-container.view.tsx?de8f","webpack://Citta2.0/./src/data-actions/geo-location/bing-maps-locations.ts?cfec","webpack://Citta2.0/./src/modules/citta-freight-charges/citta-freight-charges.tsx?aecb","webpack://Citta2.0/./src/modules/citta-freight-charges/citta-freight-charges.view.tsx?0bed","webpack://Citta2.0/./src/themes/citta/views/video-player.view.tsx?eef1","webpack://Citta2.0/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Citta2.0/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52"],"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\nimport * as React from 'react';\r\n\r\nconst Loading: React.FC = () =>
;\r\n\r\nexport default Loading;\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 { IModuleStateManager, IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport get from 'lodash/get';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICheckoutSectionContainerProps } from './checkout-section-container.props.autogenerated';\r\nimport LoadingComponent from './components/loading';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\n\r\nexport interface ICheckoutSectionContainerModuleProps extends ICheckoutSectionContainerProps<{}>, IModuleStateProps {\r\n enableControl: boolean;\r\n}\r\n\r\nexport interface ICheckoutSectionContainerItem {\r\n id: string;\r\n loading?: React.ReactNode;\r\n itemProps: INodeProps;\r\n item: React.ReactNode;\r\n}\r\n\r\nexport interface ICheckoutSectionContainerState {\r\n reCaptchaChecked: boolean;\r\n rCCError: boolean;\r\n}\r\n\r\nexport interface ICheckoutSectionContainerViewProps extends ICheckoutSectionContainerProps<{}> {\r\n className: string;\r\n checkoutPlainContainerProps: IModuleProps;\r\n items: ICheckoutSectionContainerItem[];\r\n reCaptcha: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutPlainContainer component\r\n * @extends {React.Component}\r\n */\r\n@observer\r\nexport class CheckoutPlainContainer extends React.Component {\r\n public state: ICheckoutSectionContainerState = {\r\n reCaptchaChecked: false,\r\n rCCError: false,\r\n }\r\n private _recaptchaRef: React.RefObject = React.createRef();\r\n private recaptchaErrorMessage: string | undefined;\r\n public componentDidMount(): void {\r\n const items = this.getItems();\r\n const childIds = items.map((item: React.ReactNode) => get(item, 'props.id'));\r\n this.props.moduleState.init({\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit,\r\n childIds\r\n });\r\n\r\n reaction(\r\n () => this.props.moduleState.isReady,\r\n () => {\r\n this.onContainerReady();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.moduleState.shouldSubmitContainer,\r\n () => {\r\n this.onSubmit();\r\n }\r\n );\r\n }\r\n\r\n public componentDidUpdate(): void {\r\n if (!this.props.moduleState.hasExternalSubmitGroup) {\r\n return;\r\n }\r\n /**\r\n * Review all modules to updating status if one of the modules has error\r\n */\r\n const { childIds, hasError, getModule } = this.props.moduleState;\r\n const hasReadyItems = childIds.some((childId: string) => {\r\n const state = getModule(childId);\r\n return !!state && state.isReady;\r\n });\r\n if (hasReadyItems && hasError) {\r\n this.onEdit();\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n enableControl,\r\n moduleState,\r\n config: { width }\r\n } = this.props;\r\n\r\n const items = this.getItems();\r\n if (!items.length) {\r\n this.props.context.telemetry.error('Checkout section content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n const moduleClassName = classname(\r\n 'ms-checkout-section-container',\r\n {\r\n 'has-initialized': moduleState.hasInitialized,\r\n 'is-ready': moduleState.isReady,\r\n 'is-updating': !moduleState.isReady,\r\n container: width === 'container',\r\n 'col-12 fullwidth': width === 'fluid'\r\n },\r\n this.props.config.className\r\n );\r\n\r\n const viewProps: ICheckoutSectionContainerViewProps = {\r\n ...this.props,\r\n\r\n className: moduleClassName,\r\n reCaptcha: this._renderReCaptcha(),\r\n checkoutPlainContainerProps: {\r\n moduleProps: this.props,\r\n className: moduleClassName\r\n },\r\n items: items.map((item: React.ReactNode) => {\r\n const childId = get(item, 'props.id');\r\n const state = moduleState.getModule(childId);\r\n // Modules has not completed initializing or it's disable\r\n\r\n const hidden = state.hasModuleState && (!state.hasInitialized || state.isDisabled || state.isSkipped);\r\n return {\r\n id: childId,\r\n loading: state.hasModuleState && !state.hasInitialized && ,\r\n itemProps: {\r\n 'data-type-name': state.typeName,\r\n className: classname('ms-checkout-section-container__item', {\r\n hidden: hidden,\r\n initialized: state.hasInitialized,\r\n disabled: state.isDisabled,\r\n skipped: state.isSkipped,\r\n ready: state.isReady,\r\n updating: state.isUpdating,\r\n pending: state.isPending\r\n })\r\n },\r\n item: React.cloneElement(item as React.ReactElement, { enableControl })\r\n };\r\n })\r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderReCaptcha(): React.ReactNode {\r\n if(this.props.config.reCaptchaOption){\r\n return (\r\n
\r\n
\r\n {this.state.rCCError ? this._renderRecaptchaAlert('recaptcha-error') : ''}\r\n this._submit()}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private _renderRecaptchaAlert(className: string): JSX.Element {\r\n\r\n if (this.props.config.reCaptchaOption) {\r\n if (!this.state.reCaptchaChecked) {\r\n this.recaptchaErrorMessage = this.props.resources.recaptchaErrorMessage;\r\n }\r\n }\r\n\r\n const rCCError = this.state.rCCError;\r\n return (\r\n <>\r\n {rCCError && (\r\n \r\n {\r\n this.recaptchaErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n private _submit() {\r\n const recaptchaValue = this._recaptchaRef.current?.getValue();\r\n this.clearError();\r\n if(!recaptchaValue){\r\n this.setState({\r\n rCCError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else {\r\n this.getActiveChildModuleStates().forEach(state => {\r\n !state.isReady && state.onSubmit && state.onSubmit();\r\n });\r\n this._recaptchaRef.current?.reset();\r\n }\r\n }\r\n\r\n private getItems = (): React.ReactNode[] => {\r\n const { slots } = this.props;\r\n return (slots && slots.primary && slots.primary.length && slots.primary) || [];\r\n };\r\n\r\n private getActiveChildModuleStates = (): IModuleStateManager[] => {\r\n const { childIds, getModule } = this.props.moduleState;\r\n return childIds\r\n .map(getModule)\r\n .filter((state): state is IModuleStateManager => !!state && !state.isDisabled && state.hasModuleState);\r\n };\r\n\r\n private clearError = (): void => {\r\n // Clear error before action, otherwise it will rise conflict;\r\n this.getActiveChildModuleStates().forEach(state => {\r\n state.hasError && state.setHasError(false);\r\n });\r\n };\r\n\r\n private onSubmit = (): void => {\r\n if(this.props.config.reCaptchaOption){\r\n this._recaptchaRef.current?.execute()\r\n } else {\r\n this.clearError();\r\n this.getActiveChildModuleStates().forEach(state => {\r\n !state.isReady && state.onSubmit && state.onSubmit();\r\n });\r\n }\r\n };\r\n\r\n private onCancel = (): void => {\r\n this.clearError();\r\n this.getActiveChildModuleStates().forEach(state => {\r\n !state.isReady && state.onCancel && state.onCancel();\r\n });\r\n };\r\n\r\n private onEdit = (): void => {\r\n this.getActiveChildModuleStates().forEach(state => {\r\n (state.isReady || state.isSkipped) && state.onEdit && state.onEdit();\r\n });\r\n };\r\n\r\n private onContainerReady = (): void => {\r\n this.getActiveChildModuleStates().forEach(state => {\r\n state.isReady && state.onContainerReady && state.onContainerReady();\r\n });\r\n };\r\n}\r\n\r\nexport default withModuleState(CheckoutPlainContainer);\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICheckoutSectionContainerItem, ICheckoutSectionContainerViewProps } from './checkout-section-container';\r\n\r\nconst ItemComponent: React.FC = ({ loading, itemProps, item }) => (\r\n <>\r\n {loading}\r\n {item}\r\n \r\n);\r\n\r\nconst CheckoutSectionContainerView: React.FC = ({ checkoutPlainContainerProps, items,reCaptcha }) => (\r\n \r\n {items.map(item => (\r\n \r\n ))}\r\n {reCaptcha}\r\n \r\n);\r\n\r\nexport default CheckoutSectionContainerView;\r\n","import { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { BingMapsLocationsResult } from '../../models/bing-maps-data';\r\nimport { GeoLocationPostalCode } from '../../models/search-by-lat-lon-data';\r\n\r\n/**\r\n * Input class for the azure maps search fuzzy API\r\n */\r\nexport class BingMapsLocationsInput implements IActionInput {\r\n public latitude: string;\r\n public longitude: string;\r\n public serviceEndpoint: string;\r\n public apiKey?: string;\r\n\r\n constructor(lat: string, lon: string, apiKey: string, endPoint: string) {\r\n this.latitude = lat;\r\n this.longitude = lon;\r\n this.apiKey = apiKey;\r\n this.serviceEndpoint = endPoint;\r\n }\r\n\r\n public getCacheKey = () => `BingMapsLocationAPI-${this.latitude}-${this.longitude}`;\r\n public getCacheObjectType = () => 'BingMapsLocationAPIResponse';\r\n public dataCacheType = (): CacheType => 'none'; // Don't cache this. Its against bing maps TOS\r\n}\r\n\r\n/**\r\n * Calls azure maps search fuzzy API\r\n */\r\nexport async function getLocations(input: BingMapsLocationsInput, ctx: IActionContext): Promise {\r\n if (!input.apiKey) {\r\n ctx.trace(`[BingMapsLocations] No Bing Maps API key provided`);\r\n\r\n return undefined;\r\n }\r\n\r\n const callbackString = `bingMapsSearchCallback_${crypto.getRandomValues(new Uint32Array(1))[0]}`;\r\n\r\n const requestUrl =\r\n `${encodeURI(input.serviceEndpoint)}/${encodeURI(input.latitude)},${encodeURI(input.longitude)}?key=${encodeURI(input.apiKey)}&jsonp=${callbackString}`;\r\n\r\n return new Promise((resolve) => {\r\n const script = document.createElement('script');\r\n script.setAttribute('type', 'text/javascript');\r\n script.setAttribute('src', requestUrl);\r\n\r\n window[callbackString] = (data: BingMapsLocationsResult) => {\r\n delete window[callbackString];\r\n document.body.removeChild(script);\r\n if (data && data.resourceSets && data.resourceSets.length > 0 && data.resourceSets[0].resources.length > 0) {\r\n resolve({\r\n postalCode: data.resourceSets[0].resources[0].address.postalCode\r\n });\r\n }\r\n resolve(undefined);\r\n };\r\n document.body.appendChild(script);\r\n });\r\n}\r\n\r\nexport default createObservableDataAction({\r\n action: >getLocations,\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 { Button, Heading, IModuleProps, INodeProps, Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { AttributeValue, IContext } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { dXC_GetFreightChargesForPDPAsync } from '../../data-actions/generated/DataActionExtension.g';\r\nimport { IDXC_GetFreightChargesServiceResponse, IDXC_ItemLine } from '../../data-actions/generated/DataServiceEntities.g';\r\nimport geoLocation, { BingMapsLocationsInput } from '../../data-actions/geo-location/bing-maps-locations';\r\nimport { IGetFreightChargesServiceResponse } from '../../models/GetFreightChargesServiceResponse';\r\nimport { ICittaFreightChargesData } from './citta-freight-charges.data';\r\nimport { ICittaFreightChargesProps } from './citta-freight-charges.props.autogenerated';\r\n\r\ninterface IFreightChargeState {\r\n errorMessage: string;\r\n isOpen: boolean;\r\n postalCode?: string;\r\n latitude: string;\r\n longitude: string;\r\n freightResponse?: IGetFreightChargesServiceResponse;\r\n isError: boolean;\r\n}\r\n\r\nexport interface ICittaFreightChargesViewProps extends ICittaFreightChargesProps {\r\n ProductFreightContainer: IModuleProps;\r\n ProductFreightAttribute: INodeProps;\r\n ProductNoFreightAttribute: INodeProps;\r\n ProductFreightAttributeModal: INodeProps;\r\n productFreightAmount: React.ReactNode;\r\n productFreightMessage: React.ReactNode;\r\n productFreightCalculate: React.ReactNode;\r\n productFreightUpdate: React.ReactNode;\r\n productFreightModel: React.ReactNode;\r\n productNoFreight: React.ReactNode;\r\n freightAttribute: boolean;\r\n freightResponseCheck: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * CittaFreightCharges component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass CittaFreightCharges extends React.PureComponent, IFreightChargeState> {\r\n\r\n public state: IFreightChargeState = {\r\n errorMessage: '',\r\n isOpen: false,\r\n postalCode: '',\r\n latitude: '',\r\n longitude: '',\r\n freightResponse: undefined,\r\n isError: false\r\n };\r\n\r\n private _productFreightAttribute: string = this.props.context.app.config.freightValue && this.props.context.app.config.freightValue.toUpperCase() || 'FREIGHT ITEM';\r\n private _PostalCodeInputRef: React.RefObject;\r\n private _showAvailablityText: boolean = false;\r\n\r\n constructor(props: ICittaFreightChargesProps) {\r\n super(props);\r\n this._PostalCodeInputRef = React.createRef();\r\n this._closeModal = this._closeModal.bind(this);\r\n this._openModal = this._openModal.bind(this);\r\n this._handleSearch = this._handleSearch.bind(this);\r\n this._handleChange = this._handleChange.bind(this);\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n reaction(\r\n () => this.props.config.onUpdateQuantityFreightCheck && this.props.data.productQuantityState.result && this.props.data.productQuantityState.result.productQuantity && this.props.data.productQuantityState.result.productQuantity,\r\n () => {\r\n if (this.props.config.onUpdateQuantityFreightCheck && this.props.data.productQuantityState.result && this.props.data.productQuantityState.result.productQuantity && this.props.data.productQuantityState.result.productQuantity) {\r\n this._getNewFreightCharges(this.state.postalCode).catch(e => {\r\n this.props.telemetry.error(`Something went wrong ------${e}`);\r\n });\r\n }\r\n }\r\n );\r\n\r\n // tslint:disable-next-line: no-this-assignment\r\n const that = this;\r\n const freightAttribute: AttributeValue[] | undefined = this.props.data.productAttributes.result;\r\n if (freightAttribute && this._checkFreightAttributes()) {\r\n if (navigator && navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(\r\n async position => {\r\n this.setState({ latitude: position.coords.latitude.toString(), longitude: position.coords.longitude.toString() });\r\n const response: IDXC_GetFreightChargesServiceResponse = await this._getItemFreightCharges();\r\n this.setState({ isOpen: false, freightResponse: response, errorMessage: '' });\r\n },\r\n error => {\r\n if (error.code === error.PERMISSION_DENIED) {\r\n that.setState({ isOpen: false, errorMessage: '' });\r\n }\r\n });\r\n }\r\n } else {\r\n this.setState({ isOpen: false, freightResponse: undefined, errorMessage: '' });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const config = this.props.config;\r\n const responseObj: IGetFreightChargesServiceResponse | undefined = this.state.freightResponse;\r\n const freightAttributeCheck = this._checkFreightAttributes();\r\n let freightResponseCheck: boolean = false;\r\n if (responseObj && this.state.postalCode && !this.state.isError) {\r\n freightResponseCheck = true;\r\n }\r\n const CittaFreightChargesViewProps = {\r\n ...this.props,\r\n ProductFreightContainer: {\r\n moduleProps: this.props,\r\n className: classnames('product-freight-charges', config.className)\r\n },\r\n ProductFreightAttribute: {\r\n className: 'product-freight'\r\n },\r\n ProductFreightAttributeModal: {\r\n className: ''\r\n },\r\n ProductNoFreightAttribute: {\r\n className: ''\r\n },\r\n productFreightAmount: this._renderProductFreightAmount(),\r\n productFreightMessage: this._renderProductFreightMessage(),\r\n productFreightCalculate: this._renderProductFreightCalculate(),\r\n productFreightUpdate: this._renderProductFreightUpdate(),\r\n productFreightModel: this._renderProductFreightModal(),\r\n productNoFreight: this._renderProductNoFreight(),\r\n freightAttribute: freightAttributeCheck,\r\n freightResponseCheck: freightResponseCheck\r\n };\r\n return this.props.renderView(CittaFreightChargesViewProps) as React.ReactElement;\r\n }\r\n\r\n private _checkFreightAttributes = (): boolean => {\r\n const prodAttributes: AttributeValue[] | undefined = this.props && this.props.data && this.props.data.productAttributes && this.props.data.productAttributes.result;\r\n if (prodAttributes && prodAttributes.length) {\r\n const filterAttributes = prodAttributes.filter(\r\n attribute => attribute.Name && attribute.Name.toUpperCase() === this._productFreightAttribute\r\n );\r\n if (filterAttributes && filterAttributes.length) {\r\n if (!filterAttributes[0].BooleanValue) {\r\n this._showAvailablityText = true;\r\n }\r\n return filterAttributes[0].BooleanValue || false;\r\n } else {\r\n this._showAvailablityText = false;\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private _handleChange = (ref: React.RefObject) => (event: React.ChangeEvent) => {\r\n this.setState({ errorMessage: '' });\r\n }\r\n\r\n private _handleSearch = async (e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise => {\r\n e.preventDefault();\r\n const postalCodeInput = this._PostalCodeInputRef && this._PostalCodeInputRef.current ? this._PostalCodeInputRef.current.value : '';\r\n if (postalCodeInput.length > 4) {\r\n this.setState({ errorMessage: this.props.config.postalCodeInputErrorMessage1! });\r\n } else if (!this._isValidPostalCode(postalCodeInput)) {\r\n this.setState({ errorMessage: this.props.config.postalCodeInputErrorMessage2! });\r\n } else {\r\n const response: IDXC_GetFreightChargesServiceResponse = await this._getItemFreightCharges(postalCodeInput);\r\n if (response.Result === 'false') {\r\n this.setState({ errorMessage: response.Message!, isError: true });\r\n } else if (response && response.Result) {\r\n this.setState({ errorMessage: '', freightResponse: response, postalCode: postalCodeInput, isError: false });\r\n } else if (response && !response.Result) {\r\n this.setState({ errorMessage: response.Message!, isError: true });\r\n }\r\n }\r\n }\r\n\r\n private _getNewFreightCharges = async (postalCode?: string): Promise => {\r\n const response: IDXC_GetFreightChargesServiceResponse = await this._getItemFreightCharges(postalCode);\r\n if (response.Result === 'false') {\r\n this.setState({ errorMessage: response.Message!, isError: true });\r\n } else if (response && response.Result) {\r\n this.setState({ errorMessage: '', freightResponse: response, isError: false });\r\n } else if (response && !response.Result) {\r\n this.setState({ errorMessage: response.Message!, isError: true });\r\n }\r\n }\r\n\r\n private _getItemFreightCharges(postalCode?: string): Promise {\r\n const itemId = this.props && this.props.data && this.props.data.product && this.props.data.product.result ? this.props.data.product.result.ItemId : '';\r\n const response: IGetFreightChargesServiceResponse = { ChargesAmount: 0 };\r\n const itemLine: IDXC_ItemLine = { ItemId: itemId, Quantity: this.props.data.currentQuantity.result };\r\n const ctx: IContext = { callerContext: this.props.context.actionContext };\r\n\r\n if (!postalCode) {\r\n const bingAppKey = this.props && this.props.config && this.props.config.bingApiAppKey ? this.props.config.bingApiAppKey : '';\r\n const bingApiEndpoint = this.props && this.props.config && this.props.config.bingApiEndPoint || '';\r\n const searchInput: BingMapsLocationsInput = new BingMapsLocationsInput(this.state.latitude, this.state.longitude, bingAppKey, bingApiEndpoint);\r\n geoLocation(searchInput, this.props.context.actionContext).then(\r\n (result) => {\r\n if (result) {\r\n postalCode = result.postalCode;\r\n this.setState({ postalCode: postalCode });\r\n dXC_GetFreightChargesForPDPAsync(ctx, postalCode!, itemLine).then(\r\n (responseObj) => {\r\n if (responseObj) {\r\n if (responseObj.Result === 'false') {\r\n this.setState({ errorMessage: responseObj.Message!, isError: true });\r\n } else {\r\n this.setState({ errorMessage: '', freightResponse: responseObj, isError: false });\r\n }\r\n } else {\r\n this.setState({ isError: true });\r\n }\r\n }\r\n );\r\n } else {\r\n postalCode = '';\r\n return;\r\n }\r\n });\r\n } else {\r\n this.setState({ postalCode: postalCode });\r\n return dXC_GetFreightChargesForPDPAsync(ctx, postalCode, itemLine);\r\n }\r\n return Promise.resolve(response);\r\n }\r\n\r\n private _closeModal(): void {\r\n this.setState(prevState => ({\r\n isOpen: !prevState.isOpen\r\n }));\r\n }\r\n private _openModal(): void {\r\n this.setState(prevState => ({\r\n isOpen: !prevState.isOpen\r\n }));\r\n }\r\n\r\n private _isValidPostalCode = (postalCode: string): boolean => {\r\n const regex = /^[0-9]+[0-9]*$/;\r\n return regex.test(postalCode);\r\n }\r\n\r\n private _getFormattedPrice(freightAmount: number): React.ReactNode {\r\n const formattedPrice = this.props.context.cultureFormatter.formatCurrency(freightAmount);\r\n return (\r\n {formattedPrice}\r\n );\r\n }\r\n\r\n private _renderProductFreightAmount(): React.ReactNode {\r\n const responseObj: IGetFreightChargesServiceResponse | undefined = this.state.freightResponse;\r\n if (responseObj) {\r\n return (\r\n
\r\n {this._getFormattedPrice(responseObj.ChargesAmount)} {this.props.resources.freight_estimatedShippingText}\r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private _renderProductFreightMessage(): React.ReactNode {\r\n const responseObj: IGetFreightChargesServiceResponse | undefined = this.state.freightResponse;\r\n const resources = this.props.resources;\r\n const postalCode = this.state.postalCode || '';\r\n const freightBasedOnCityName = responseObj && postalCode ? `${resources.freight_basedOnText}: ${postalCode}` : '';\r\n return (\r\n
{freightBasedOnCityName}
\r\n );\r\n }\r\n\r\n private _renderProductFreightUpdate(): React.ReactNode {\r\n const resources = this.props.resources;\r\n return (\r\n
\r\n \r\n {resources.freight_updateLocationLinkText}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderProductFreightCalculate(): React.ReactNode {\r\n const resources = this.props.resources;\r\n return (\r\n
\r\n \r\n {resources.freight_updateLocationLinkAltText}\r\n \r\n
\r\n );\r\n }\r\n private _renderProductNoFreight(): React.ReactNode | null {\r\n const { config, resources } = this.props;\r\n const showAvailablityTextConfig = config.freightCheck ? config.freightCheck : false;\r\n // Show availability based in freight attribute as configured in appsetting and module configuration\r\n if (showAvailablityTextConfig && this._showAvailablityText) {\r\n const availableForLabelText = resources.freight_availableForLabel ? resources.freight_availableForLabel : 'Available for';\r\n const availableForValue = config.availableFor ? config.availableFor : 'Click & Collect';\r\n return (\r\n
\r\n {availableForLabelText}\r\n {availableForValue}\r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private _renderProductFreightModal(): React.ReactNode {\r\n const responseObj: IGetFreightChargesServiceResponse | undefined = this.state.freightResponse;\r\n const { config, resources } = this.props;\r\n return (\r\n \r\n {config.modalHeader}\r\n \r\n
\r\n
\r\n \r\n

{config.postalCodeInputLabel}

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {this.state.errorMessage ?
\r\n {this.state && this.state.errorMessage ?\r\n \r\n {this.state.errorMessage}\r\n : null\r\n }\r\n
: null}\r\n {responseObj ?\r\n
\r\n
\r\n
\r\n

{resources.freight_postCode}

\r\n

{this.state.postalCode ? this.state.postalCode : ''}

\r\n
\r\n
\r\n

{resources.freight_delivery}

\r\n

{responseObj ? this._getFormattedPrice(responseObj.ChargesAmount) : null}

\r\n
\r\n
\r\n
\r\n

{config.deliveryInfoBottom1}

\r\n

{config.deliveryInfoBottom2}

\r\n

{config.deliveryInfoBottom3}

\r\n
\r\n
: null}\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default CittaFreightCharges;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaFreightChargesViewProps } from './citta-freight-charges';\r\n\r\nconst CittaFreightChargesView: React.FC = props => {\r\n const { ProductFreightContainer, productFreightAmount, productFreightMessage, productFreightCalculate, productFreightUpdate,\r\n productFreightModel, productNoFreight, freightAttribute, ProductFreightAttribute, ProductFreightAttributeModal, ProductNoFreightAttribute, freightResponseCheck } = props;\r\n if (freightAttribute) {\r\n return (\r\n \r\n {freightResponseCheck ?\r\n \r\n {productFreightAmount}\r\n {productFreightMessage}\r\n {productFreightUpdate}\r\n :\r\n \r\n {productFreightCalculate}\r\n }\r\n \r\n {productFreightModel}\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {productNoFreight}\r\n \r\n );\r\n }\r\n};\r\n\r\nexport default CittaFreightChargesView;\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 { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { IVideoPlayerViewProps } from '@msdyn365-commerce-modules/video-player/src/modules/video-player/video-player';\r\n// import { IPlayerResources } from '@msdyn365-commerce/components/dist/types/videoplayer/components/data/player-resources';\r\nimport { Image } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { IVideoPlayerProps } from '../definition-extensions/video-player.ext.props.autogenerated';\r\n\r\ninterface IVideoPlayerState {\r\n isMobile: boolean;\r\n }\r\n\r\n/**\r\n *\r\n * VideoPlayer component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class VideoPlayerView extends React.PureComponent, IVideoPlayerState> {\r\n constructor(props: IVideoPlayerViewProps) {\r\n //@ts-ignore\r\n super(props);\r\n this.state = {isMobile: false};\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._updateIsMobile();\r\n window.addEventListener('resize', this._updateIsMobile);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window.removeEventListener('resize', this._updateIsMobile);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return (\r\n \r\n
\r\n {this.state.isMobile ? this._renderMobile() : this._renderDesktop()}\r\n {this._renderVideoPlayerOverlay()}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderDesktop = (): React.ReactNode | null => {\r\n const playerResources: any = {\r\n playAriaLabel: this.props.config.playLabel ? this.props.config.playLabel : '',\r\n pauseAriaLabel: this.props.config.pauseLabel ? this.props.config.pauseLabel : '',\r\n muteAriaLabel: this.props.config.muteLabel ? this.props.config.muteLabel : '',\r\n unMuteAriaLabel: this.props.config.unMuteLabel ? this.props.config.unMuteLabel: '',\r\n fullScreenAriaLabel: this.props.config.fullScreenLabel ? this.props.config.fullScreenLabel : '',\r\n exitFullScreenAriaLabel: this.props.config.exitFullScreenLabel ? this.props.config.exitFullScreenLabel : '',\r\n playingAriaLabel: this.props.config.playingLabel ? this.props.config.playingLabel : '',\r\n pausedAriaLabel: this.props.config.pausedLabel ? this.props.config.pausedLabel : '',\r\n ...this.props.resources\r\n };\r\n if (this.props.player) {\r\n return React.cloneElement(this.props.player as React.ReactElement, {playerResources});\r\n }\r\n return null;\r\n };\r\n\r\n private _renderMobile = (): React.ReactNode | null => {\r\n const imageSettingsDefault = {\r\n disableLazyLoad: true,\r\n viewports: {\r\n xs: { q: `q=80&w=770&h=500&m=6`, w: 770, h: 500 }\r\n }\r\n };\r\n const image = this.props.config.mobileImage;\r\n\r\n if (image) {\r\n return (\r\n
\r\n {image && }\r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private _renderVideoPlayerOverlay = (): React.ReactNode | null => {\r\n const { buttonText, buttonLink, headerText, horizontalPosition } = this.props.config;\r\n if (buttonText || headerText) {\r\n return (\r\n
\r\n { headerText &&
{headerText}
}\r\n { buttonText && {buttonText}\r\n }\r\n
\r\n );\r\n }\r\n return null;\r\n };\r\n\r\n private _updateIsMobile = () => {\r\n this.setState({\r\n isMobile: window.innerWidth < 768\r\n });\r\n }\r\n}\r\n\r\nexport default VideoPlayerView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n"],"names":["Loading","React","className","CheckoutPlainContainer","constructor","state","reCaptchaChecked","rCCError","_recaptchaRef","getItems","slots","this","props","primary","length","getActiveChildModuleStates","childIds","getModule","moduleState","map","filter","isDisabled","hasModuleState","clearError","forEach","hasError","setHasError","onSubmit","_this$_recaptchaRef$c","config","reCaptchaOption","current","execute","isReady","onCancel","onEdit","isSkipped","onContainerReady","componentDidMount","item","get","init","reaction","shouldSubmitContainer","componentDidUpdate","hasExternalSubmitGroup","some","childId","render","enableControl","width","items","context","telemetry","error","moduleClassName","classname","hasInitialized","container","viewProps","_objectSpread","reCaptcha","_renderReCaptcha","checkoutPlainContainerProps","moduleProps","hidden","id","loading","LoadingComponent","itemProps","typeName","initialized","disabled","skipped","ready","updating","isUpdating","pending","isPending","renderView","_renderRecaptchaAlert","ReCAPTCHA","ref","sitekey","reCaptchaSiteKey","size","onChange","_submit","recaptchaErrorMessage","resources","role","_this$_recaptchaRef$c2","recaptchaValue","getValue","_this$_recaptchaRef$c4","_this$_recaptchaRef$c3","reset","setState","__decorate","observer","withModuleState","ItemComponent","_ref","Node","Object","assign","_ref2","Module","key","BingMapsLocationsInput","lat","lon","apiKey","endPoint","getCacheKey","latitude","longitude","getCacheObjectType","dataCacheType","serviceEndpoint","createObservableDataAction","action","async","input","ctx","trace","callbackString","crypto","getRandomValues","Uint32Array","requestUrl","encodeURI","Promise","resolve","script","document","createElement","setAttribute","window","data","body","removeChild","resourceSets","postalCode","address","undefined","appendChild","CittaFreightCharges","super","errorMessage","isOpen","freightResponse","isError","_productFreightAttribute","app","freightValue","toUpperCase","_showAvailablityText","_checkFreightAttributes","prodAttributes","productAttributes","result","filterAttributes","attribute","Name","BooleanValue","_handleChange","event","_handleSearch","e","preventDefault","postalCodeInput","_PostalCodeInputRef","value","postalCodeInputErrorMessage1","_isValidPostalCode","response","_getItemFreightCharges","Result","Message","postalCodeInputErrorMessage2","_getNewFreightCharges","test","_closeModal","bind","_openModal","onUpdateQuantityFreightCheck","productQuantityState","productQuantity","catch","that","navigator","geolocation","getCurrentPosition","position","coords","toString","code","PERMISSION_DENIED","responseObj","freightAttributeCheck","freightResponseCheck","CittaFreightChargesViewProps","ProductFreightContainer","classnames","ProductFreightAttribute","ProductFreightAttributeModal","ProductNoFreightAttribute","productFreightAmount","_renderProductFreightAmount","productFreightMessage","_renderProductFreightMessage","productFreightCalculate","_renderProductFreightCalculate","productFreightUpdate","_renderProductFreightUpdate","productFreightModel","_renderProductFreightModal","productNoFreight","_renderProductNoFreight","freightAttribute","itemLine","ItemId","product","Quantity","currentQuantity","callerContext","actionContext","dXC_GetFreightChargesForPDPAsync","bingAppKey","bingApiAppKey","bingApiEndpoint","bingApiEndPoint","searchInput","geoLocation","then","ChargesAmount","prevState","_getFormattedPrice","freightAmount","formattedPrice","cultureFormatter","formatCurrency","freight_estimatedShippingText","freightBasedOnCityName","freight_basedOnText","Button","freight_updateLocationLinkText","title","href","onClick","outline","freight_updateLocationLinkAltText","freightCheck","availableForLabelText","freight_availableForLabel","availableForValue","availableFor","Modal","autoFocus","fade","horizontalPosition","verticalPosition","zIndex","toggle","applicationNode","lightboxClassName","ModalHeader","modalHeader","ModalBody","name","autoComplete","Heading","text","formHeadingText","tag","postalCodeInputLabel","type","color","freight_postCode","freight_delivery","deliveryInfoBottom1","deliveryInfoBottom2","deliveryInfoBottom3","VideoPlayerView","_renderDesktop","playerResources","playAriaLabel","playLabel","pauseAriaLabel","pauseLabel","muteAriaLabel","muteLabel","unMuteAriaLabel","unMuteLabel","fullScreenAriaLabel","fullScreenLabel","exitFullScreenAriaLabel","exitFullScreenLabel","playingAriaLabel","playingLabel","pausedAriaLabel","pausedLabel","player","_renderMobile","imageSettingsDefault","disableLazyLoad","viewports","xs","q","w","h","image","mobileImage","_image$imageSettings","Image","src","altText","gridSettings","request","imageSettings","loadFailureBehavior","_renderVideoPlayerOverlay","buttonText","buttonLink","headerText","isMobile","_updateIsMobile","innerWidth","addEventListener","componentWillUnmount","removeEventListener","renderModuleAttributes","InteractiveFeatureCollection","_telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","handleTextChange","target","static","index","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","telemetryContent","vertical","createHeading","Msdyn365","editProps","requestContext","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem"],"sourceRoot":""}