{"version":3,"file":"static/js/86875737131ff5419a6d.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/components/collectionitem.component.tsx?4581","webpack://Msdyn365.Commerce.Online/./src/modules/moe-addtocollection/moe-addtocollection.view.tsx?f1e9","webpack://Msdyn365.Commerce.Online/./src/utilities/language-change.ts?a435"],"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\n/* eslint-disable react/no-unknown-property */\r\nimport { IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport React, { useRef, useState } from 'react';\r\nimport { FaPen, FaCheck, FaTrashAlt } from 'react-icons/fa';\r\nimport { MAORI_LANG } from '../utilities/constants';\r\n\r\nexport interface ICollectionItemComponentProps extends IComponentProps<{}> {\r\n className?: string;\r\n index: number;\r\n isCheckboxEnabled: boolean;\r\n onCheckboxSelect: (event: React.ChangeEvent, collectionId: string, isChecked: boolean) => void;\r\n collection: any;\r\n isClickCollectionEnabled: boolean;\r\n onClickCollection: (index: number, collectionId: number, collectionProducts: any[]) => void;\r\n isEditEnabled: boolean;\r\n isDeleteEnabled: boolean;\r\n isTickMarkVisible: boolean;\r\n toggleEditableCollection: (event: any, index: any) => void;\r\n deleteCollection: (event: any, collectionId: any) => void;\r\n collectionNameRef?: any;\r\n currentIndex?: any;\r\n selectCollection: (index: number, collectionId: number) => void;\r\n updateCollectionName: (collectionId: number, changedCollectionName: string, setCollectionTitle: any) => void;\r\n selectedCollection?: any;\r\n redirectionLink?: any;\r\n setErrorMessage?: any;\r\n MoeErrorMessages?: any;\r\n preferredLanguageForError?: string;\r\n siteLang?: string;\r\n otherSiteCollectionCount?: any;\r\n}\r\n\r\nexport interface ICollectionItemComponent extends IComponent {}\r\n\r\nexport const CollectionItem: React.FC = ({\r\n context,\r\n typeName,\r\n id,\r\n className,\r\n index,\r\n isCheckboxEnabled,\r\n onCheckboxSelect,\r\n collection,\r\n isClickCollectionEnabled,\r\n onClickCollection,\r\n isEditEnabled,\r\n isDeleteEnabled,\r\n isTickMarkVisible,\r\n toggleEditableCollection,\r\n deleteCollection,\r\n currentIndex,\r\n selectCollection,\r\n selectedCollection,\r\n updateCollectionName,\r\n setErrorMessage,\r\n MoeErrorMessages,\r\n preferredLanguageForError,\r\n siteLang,\r\n otherSiteCollectionCount\r\n}) => {\r\n // variables declarations\r\n const titleLength = 25;\r\n const apiSettings = context.request.apiSettings;\r\n\r\n // State definitions\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [collectionTitle, setCollectionTitle] = useState(collection.Name || '');\r\n const [backgroundImage, setBackgroundImage] = useState('');\r\n const [isChecked, setIsChecked] = useState(false);\r\n\r\n // Ref definitions\r\n const collectionNameRef: any = useRef();\r\n\r\n // Language change variables\r\n const languageAttributes = {\r\n noOfResourcesText: 'resources',\r\n noOfResourcesTextInMaori: 'Ngā rauemi',\r\n editText: 'Edit collection',\r\n editTextInMaori: 'Ētitahia te kohinga',\r\n deleteText: 'Delete collection',\r\n deleteTextInMaori: 'Mukua te kohinga'\r\n };\r\n\r\n /* @note:\r\n methods for add to collection functionality\r\n */\r\n const toggleEdit = (event: any) => {\r\n event?.stopPropagation;\r\n event?.preventDefault;\r\n setIsDisabled(!isDisabled);\r\n collectionNameRef?.current?.focus();\r\n };\r\n\r\n const onUpdateCollectionName = () => {\r\n event?.stopPropagation;\r\n event?.preventDefault;\r\n setIsDisabled(!isDisabled);\r\n console.log('updateCollectionName');\r\n if (collectionNameRef?.current?.value === '') {\r\n setCollectionTitle(makeid(5));\r\n }\r\n\r\n if (collectionNameRef?.current?.value === collection.Name) {\r\n setErrorMessage(\r\n preferredLanguageForError === 'english' ? MoeErrorMessages.duplicateName : MoeErrorMessages.duplicateNameInMaori\r\n );\r\n return;\r\n }\r\n\r\n if (collectionNameRef?.current?.value?.length > 25) {\r\n setErrorMessage(\r\n preferredLanguageForError === 'english'\r\n ? MoeErrorMessages.exceededCollectionNameLimit\r\n : MoeErrorMessages.exceededCollectionNameLimitInMaori\r\n );\r\n setCollectionTitle(collection.Name);\r\n return;\r\n }\r\n updateCollectionName(collection.Id, collectionNameRef?.current?.value, setCollectionTitle);\r\n };\r\n\r\n const onCollectionTitleInputClick = (event: any) => {\r\n event?.stopPropogation;\r\n event?.preventDefault;\r\n };\r\n\r\n const changeCollectionName = (event: any) => {\r\n setCollectionTitle(collectionNameRef.current.value);\r\n };\r\n\r\n const makeid = (length: number) => {\r\n var result = '';\r\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n var charactersLength = characters.length;\r\n for (var i = 0; i < length; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n return result;\r\n };\r\n\r\n const generateImageUrl = (imageUrl: any, apiSettings: any) => {\r\n if (imageUrl) {\r\n // Images hosted in CMS include schema\r\n if (typeName === 'add') {\r\n if (imageUrl.startsWith('http')) {\r\n return `${imageUrl}&w=225&h=225&q=80&m=6&f=jpg&cropfocalregion=true`;\r\n }\r\n } else {\r\n if (imageUrl.startsWith('http')) {\r\n return `${imageUrl}&w=250&h=250&q=80&m=6&f=jpg&cropfocalregion=true`;\r\n }\r\n }\r\n // Images hosted in Retail Server must be encoded and joined with the base image url\r\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n const preImageUrl = apiSettings.baseImageUrl + encodeURIComponent(imageUrl);\r\n if (typeName === 'add') {\r\n return `${preImageUrl}&w=225&h=225&q=80&m=6&f=jpg&cropfocalregion=true`;\r\n } else {\r\n return `${preImageUrl}&w=250&h=250&q=80&m=6&f=jpg&cropfocalregion=true`;\r\n }\r\n } else {\r\n // Unable to generate a proper Image URL for Product\r\n return undefined;\r\n }\r\n };\r\n\r\n const getBackgroundImage = async () => {\r\n const commerceList = collection.CommerceListLines;\r\n\r\n if (commerceList && backgroundImage !== false) {\r\n if (commerceList?.length > 0) {\r\n const productId = commerceList[0]?.ProductId;\r\n const channelId = context?.request?.apiSettings?.channelId;\r\n const actionContext: any = context?.actionContext;\r\n const productDetails = await getByIdsAsync(actionContext, channelId, [productId]);\r\n const productImageUrl = generateImageUrl(productDetails[0]?.PrimaryImageUrl, apiSettings);\r\n setBackgroundImage(productImageUrl);\r\n }\r\n }\r\n };\r\n\r\n void getBackgroundImage();\r\n\r\n const toggleCheckbox = (event: any) => {\r\n setErrorMessage('');\r\n event.stopPropagation;\r\n if (collection?.CommerceListLines?.length === 0) {\r\n setErrorMessage(\r\n preferredLanguageForError === 'english'\r\n ? MoeErrorMessages.noEmptyCollectionSharing\r\n : MoeErrorMessages.noEmptyCollectionSharingInMaori\r\n );\r\n return;\r\n }\r\n onCheckboxSelect(event, collection.Id, !isChecked);\r\n setIsChecked(!isChecked);\r\n console.log(isChecked);\r\n };\r\n\r\n const onCollectionClick = () => {\r\n if (typeName === 'add') {\r\n console.log('ADD Collection');\r\n selectCollection(index, collection?.Id);\r\n }\r\n if (typeName === 'view') {\r\n console.log('View COllection');\r\n isClickCollectionEnabled && onClickCollection(index, collection.Id, collection.CommerceListLines);\r\n }\r\n if (typeName === 'pending') {\r\n onClickCollection(index, collection.Id, collection.CommerceListLines);\r\n }\r\n setTimeout(() => {\r\n (document?.querySelector('.moe-btn--add-to-collection') as HTMLButtonElement)?.focus();\r\n }, 0);\r\n };\r\n\r\n const getCollectionCount = () => {\r\n let count: number = 0;\r\n if (collection?.CommerceListLines?.length) {\r\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n count = count + collection.CommerceListLines.length;\r\n }\r\n if (otherSiteCollectionCount && otherSiteCollectionCount[collection.Id]) {\r\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n count = count + otherSiteCollectionCount[collection.Id];\r\n }\r\n\r\n return count;\r\n };\r\n\r\n // End variables\r\n // const bgProductImage = {\r\n // backgroundImage: `url(${backgroundImage})`\r\n // };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n {isCheckboxEnabled && (\r\n \r\n )}\r\n (e.charCode === 13 ? onCollectionClick() : null)}\r\n >\r\n {backgroundImage && (\r\n setBackgroundImage(false)}\r\n src={backgroundImage}\r\n alt={collectionTitle}\r\n />\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {!isDisabled ? (\r\n changeCollectionName(event)}\r\n onClick={onCollectionTitleInputClick}\r\n disabled={isDisabled}\r\n className='msc-collection-modal__title tooltip-test'\r\n title={collectionTitle}\r\n tabIndex={0}\r\n value={collectionTitle}\r\n />\r\n ) : (\r\n

\r\n {`${collectionTitle.slice(0, titleLength)}${collectionTitle.length > titleLength ? '...' : ''}`}\r\n

\r\n )}\r\n
\r\n
\r\n {getCollectionCount() || 0}{' '}\r\n {siteLang === MAORI_LANG ? languageAttributes?.noOfResourcesTextInMaori : languageAttributes?.noOfResourcesText}\r\n
\r\n
\r\n\r\n
\r\n {isEditEnabled && (\r\n
toggleEditableCollection(event, index)}>\r\n {isDisabled ? (\r\n (event.charCode === 13 ? toggleEdit(event) : null)}\r\n tabIndex={0}\r\n role='button'\r\n />\r\n ) : (\r\n {\r\n e.charCode ? onUpdateCollectionName() : null;\r\n }}\r\n tabIndex={0}\r\n />\r\n )}\r\n
\r\n )}\r\n {isDeleteEnabled && (\r\n deleteCollection(event, collection?.Id)}\r\n onKeyPress={(event: any) => {\r\n console.log('test99615 - calling deleteCollection from onKeyPress', event, event.charCode);\r\n event.charCode === 13 ? deleteCollection(event, collection?.Id) : null;\r\n }}\r\n className='msc-delete__collection'\r\n tabIndex={0}\r\n >\r\n \r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n );\r\n};\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 * as React from 'react';\r\nimport { useState, useRef } from 'react';\r\nimport { IMoeAddtocollectionViewProps } from './moe-addtocollection';\r\nimport { INodeProps, Modal, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { AiOutlinePlus } from 'react-icons/ai';\r\nimport { FaPlus } from 'react-icons/fa';\r\nimport { CollectionItem } from '../../components/collectionitem.component';\r\n// import { getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n// import { searchByCategoryAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n// import { createReadAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductListsDataActions.g';\r\nimport {\r\n getByCustomerAsync,\r\n createCommerceListAsync,\r\n addLinesAsync,\r\n createGetByCustomerInput,\r\n updateAsync,\r\n deleteAsync\r\n // createInvitationsAsync,\r\n // acceptInvitationAsync\r\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CommerceListsDataActions.g';\r\nimport { SimpleProduct, CartLine, ProductDimension, CommerceList, AsyncResult } from '@msdyn365-commerce/retail-proxy';\r\nimport { IComponentProps } from '@msdyn365-commerce/core';\r\nimport { buildWishlistLine } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as Popper from 'popper.js';\r\nimport { IMoeAddtocollectionData } from './moe-addtocollection.data';\r\nimport { getToggleLang, getUserPreferredLanguage, getUserPrefLang } from '../../utilities/language-change';\r\nimport { MAORI_LANG, ERROR_OR_NOTIFICATION, COLLECTIONS, ACTION_BUTTONS, COLLECTIONS_SITE_LANGUAGE } from '../../utilities/constants';\r\n// import { validateCustomerDetailsAsync } from '../../actions/extensions/DataActionExtension.g';\r\n// import { getElementsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/RecommendationsDataActions.g';\r\n// import { CommerceList } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nexport interface IAddToWishlistComponentProps extends IComponentProps {\r\n className?: string;\r\n addToWishlistButtonText: string;\r\n removeFromWishlistButtonText: string;\r\n nameOfWishlist: string;\r\n\r\n addToWishlistMessage?: string;\r\n removedFromWishlistMessage?: string;\r\n addItemToWishlistError?: string;\r\n removeItemFromWishlistError?: string;\r\n\r\n showButtonText?: boolean;\r\n showButtonTooltip?: boolean;\r\n tooltipPosition?: Popper.Placement;\r\n showStatusMessage?: boolean;\r\n showRemoveButton?: boolean;\r\n disabled?: boolean;\r\n cartline?: CartLine;\r\n canAddMasterProduct?: boolean;\r\n ariaRole?: string;\r\n\r\n getSelectedProduct?: Promise;\r\n\r\n onSuccess?(result: IWishlistActionSuccessResult, cartline?: CartLine): void;\r\n onError?(result: IWishlistActionErrorResult): void;\r\n}\r\n\r\nexport interface IWishlistActionSuccessResult {\r\n status: 'ADDED' | 'REMOVED';\r\n}\r\n\r\nexport interface IWishlistActionErrorResult {\r\n status: 'FAILED' | 'MISSINGDIMENSION';\r\n\r\n missingDimensions?: ProductDimension[];\r\n}\r\n\r\nexport default (props: IMoeAddtocollectionViewProps) => {\r\n console.log('***Add to collection***', props);\r\n\r\n // variable defintions\r\n const collectionMockData: any = [];\r\n const user = props.context.request.user;\r\n const { context, resources } = props;\r\n //@ts-ignore\r\n const { product } = props.data;\r\n const toggleLang = getToggleLang(context);\r\n const userPrefLang = getUserPrefLang(user.customerAccountNumber, context);\r\n const CollectionLang = getUserPreferredLanguage(props.config?.siteName as any, COLLECTIONS, userPrefLang, toggleLang, context);\r\n const ActionButtonLang = getUserPreferredLanguage(props.config?.siteName as any, ACTION_BUTTONS, userPrefLang, toggleLang, context);\r\n const errorOrNotificationMsgLang = getUserPreferredLanguage(\r\n props.config.siteName as any,\r\n ERROR_OR_NOTIFICATION,\r\n userPrefLang,\r\n toggleLang,\r\n context\r\n );\r\n // Need to check\r\n const collectionSiteLang = getUserPreferredLanguage(\r\n props.config.siteName as any,\r\n COLLECTIONS_SITE_LANGUAGE,\r\n userPrefLang,\r\n toggleLang,\r\n context\r\n );\r\n\r\n const appendLangWordProf = CollectionLang === MAORI_LANG ? 'InMaori' : '';\r\n const appendLangWordActBtn = ActionButtonLang === MAORI_LANG ? 'InMaori' : '';\r\n const appendLangWordError = errorOrNotificationMsgLang === MAORI_LANG ? 'InMaori' : '';\r\n\r\n // const [appendLangWord, setAppendLang] = useState('');\r\n // const MoeErrorMessages = {\r\n // unknownError: props.resources[`unknownError${appendLangWord}`],\r\n // emptyCollection: props.resources[`emptyCollection${appendLangWord}`],\r\n // emptyCollections: props.resources[`emptyCollections${appendLangWord}`],\r\n // duplicateName: props.resources[`duplicateName${appendLangWord}`],\r\n // duplicateResource: props.resources[`duplicateResource${appendLangWord}`],\r\n // unAuthenticated: props.resources[`unAuthenticated${appendLangWord}`],\r\n // noAccountNumber: props.resources[`noAccountNumber${appendLangWord}`],\r\n // networkOffline: props.resources[`networkOffline${appendLangWord}`],\r\n // exceededCollectionNameLimit: props.resources[`exceededCollectionNameLimit${appendLangWord}`],\r\n // noEmptyCollectionSharing: props.resources[`noEmptyCollectionSharing${appendLangWord}`]\r\n // };\r\n // const MoeSuccessMessages = {\r\n // createCOllection: props.resources[`createCOllection${appendLangWord}`],\r\n // addResource: props.resources[`addResource${appendLangWord}`],\r\n // updateCollection: props.resources[`updateCollection${appendLangWord}`],\r\n // updateCollectionName: props.resources[`updateCollectionName${appendLangWord}`],\r\n // deleteCollection: props.resources[`deleteCollection${appendLangWord}`],\r\n // deleteProduct: props.resources[`deleteProduct${appendLangWord}`]\r\n // };\r\n\r\n const MoeErrorMessages = {\r\n unknownError: props.resources[`unknownError`],\r\n emptyCollection: props.resources[`emptyCollection`],\r\n emptyCollections: props.resources[`emptyCollections`],\r\n duplicateName: props.resources[`duplicateName`],\r\n duplicateResource: props.resources[`duplicateResource`],\r\n unAuthenticated: props.resources[`unAuthenticated`],\r\n noAccountNumber: props.resources[`noAccountNumber`],\r\n networkOffline: props.resources[`networkOffline`],\r\n exceededCollectionNameLimit: props.resources[`exceededCollectionNameLimit`],\r\n noEmptyCollectionSharing: props.resources[`noEmptyCollectionSharing`],\r\n unknownErrorInMaori: props.resources[`unknownErrorInMaori`],\r\n emptyCollectionInMaori: props.resources[`emptyCollectionInMaori`],\r\n emptyCollectionsInMaori: props.resources[`emptyCollectionsInMaori`],\r\n duplicateNameInMaori: props.resources[`duplicateNameInMaori`],\r\n duplicateResourceInMaori: props.resources[`duplicateResourceInMaori`],\r\n unAuthenticatedInMaori: props.resources[`unAuthenticatedInMaori`],\r\n noAccountNumberInMaori: props.resources[`noAccountNumberInMaori`],\r\n networkOfflineInMaori: props.resources[`networkOfflineInMaori`],\r\n exceededCollectionNameLimitInMaori: props.resources[`exceededCollectionNameLimitInMaori`],\r\n noEmptyCollectionSharingInMaori: props.resources[`noEmptyCollectionSharingInMaori`]\r\n };\r\n const MoeSuccessMessages = {\r\n createCOllection: props.resources[`createCOllection`],\r\n addResource: props.resources[`addResource`],\r\n updateCollection: props.resources[`updateCollection`],\r\n updateCollectionName: props.resources[`updateCollectionName`],\r\n deleteCollection: props.resources[`deleteCollection`],\r\n deleteProduct: props.resources[`deleteProduct`],\r\n createCOllectionInMaori: props.resources[`createCOllectionInMaori`],\r\n addResourceInMaori: props.resources[`addResourceInMaori`],\r\n updateCollectionInMaori: props.resources[`updateCollectionInMaori`],\r\n updateCollectionNameInMaori: props.resources[`updateCollectionNameInMaori`],\r\n deleteCollectionInMaori: props.resources[`deleteCollectionInMaori`],\r\n deleteProductInMaori: props.resources[`deleteProductInMaori`]\r\n };\r\n\r\n const MoeModuleTranslations = {\r\n notLoggedIn: props.resources[`notLoggedIn${appendLangWordError}`],\r\n addToCollectionText: props.resources[`addToCollectionText${appendLangWordActBtn}`],\r\n heyText: props.resources[`heyText${appendLangWordError}`],\r\n addNewCollection: props.resources[`addNewCollection${appendLangWordError}`],\r\n newCollectionText: props.resources[`newCollectionText${appendLangWordProf}`]\r\n //selectResourcesHoverText: props.resources[`addToCollectionText${appendLangWordError}`]\r\n };\r\n\r\n // State definitions\r\n const [collectionArray, setCollectionArray] = useState(collectionMockData);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [selectedCollection, setSelectedCollection] = useState({ index: -1, collectionId: -1 });\r\n const [isCollectionEditable, setIsCollectionEditable] = useState(false);\r\n const [currentIndex, setCurrentIndex] = useState(null);\r\n const [isCollectionCreated, setIsCollectionCreated] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState('');\r\n const [isAlertOpen, setAlertOpen] = useState(false);\r\n const [alertMessage, setAlertMessage] = useState('');\r\n const [isRefreshPage, setIsRefreshPage] = useState(false);\r\n\r\n // Ref definitions\r\n const scrollRef: any = useRef();\r\n const [hasBeenCalled, setHasBeenCalled] = useState(false);\r\n console.log('User details', user);\r\n\r\n async function getCollectionList() {\r\n if (user?.isAuthenticated) {\r\n try {\r\n const { context } = props;\r\n const collectionList = await getByCustomerAsync({ callerContext: context.actionContext, bypassCache: 'get' }, null);\r\n setCollectionArray([...collectionList]);\r\n console.log('Get all the customers data', collectionList);\r\n } catch (err) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unknownErrorInMaori : MoeErrorMessages.unknownError);\r\n console.error(err);\r\n }\r\n }\r\n }\r\n\r\n const getErrorOrSuccessMessage = () => {\r\n const toggleLang = getToggleLang(context);\r\n const userPrefLang = getUserPrefLang(user.customerAccountNumber, context);\r\n const errorOrNotificationMsgLang = getUserPreferredLanguage(\r\n props.config.siteName as any,\r\n ERROR_OR_NOTIFICATION,\r\n userPrefLang,\r\n toggleLang,\r\n context\r\n );\r\n return errorOrNotificationMsgLang;\r\n };\r\n\r\n const openModal = async (e: any): Promise => {\r\n console.log('testing', e, typeof e);\r\n e.preventDefault();\r\n setIsModalOpen(true);\r\n setIsCollectionCreated(false);\r\n void getCollectionList();\r\n if (!props.context.request.User.IsAuthenticated) {\r\n return;\r\n }\r\n };\r\n\r\n const closeModal = async (): Promise => {\r\n setSelectedCollection({ index: -1, collectionId: -1 });\r\n setIsModalOpen(false);\r\n };\r\n\r\n const _modalContainer = (): INodeProps => {\r\n return {\r\n tag: Modal,\r\n placement: 'bottom-end',\r\n hideArrow: true,\r\n className: `ms-add-collection-container ${isModalOpen ? 'fadeInRight' : 'fadeOutRight'}`,\r\n wrapClassName: 'ms-add-collection__modal',\r\n isOpen: isModalOpen,\r\n toggle: closeModal\r\n };\r\n };\r\n\r\n const selectCollection = (index: number, collectionId: number): void => {\r\n setErrorMessage('');\r\n if (selectedCollection?.collectionId === collectionId) {\r\n setSelectedCollection({ index: -1, collectionId: -1 });\r\n } else {\r\n setSelectedCollection({ index, collectionId });\r\n console.log(selectedCollection);\r\n }\r\n };\r\n\r\n const toggleEditableCollection = (index: any) => {\r\n // setErrorMessage('');\r\n // collectionNameRef.current.value = collectionName ? collectionName : '';\r\n setCurrentIndex(index);\r\n console.log(index, currentIndex, isCollectionEditable);\r\n setIsCollectionEditable(!isCollectionEditable);\r\n };\r\n\r\n // @info: This method is used create unique id\r\n const makeid = (length: number) => {\r\n var result = '';\r\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n var charactersLength = characters.length;\r\n for (var i = 0; i < length; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n return result;\r\n };\r\n\r\n // @info: This method checks the internet connection\r\n const isInternetConnectionAvailable = () => {\r\n if (window?.navigator?.onLine === false) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.networkOfflineInMaori : MoeErrorMessages.networkOffline);\r\n return false;\r\n } else if (window?.navigator?.onLine === true) {\r\n return true;\r\n }\r\n return;\r\n };\r\n\r\n // @info: This method is used to check whether the collection exists\r\n const doesCollectionExist = async (collectionId: number): Promise => {\r\n const { context } = props;\r\n const collectionArray = await getByCustomerAsync({ callerContext: context.actionContext, bypassCache: 'get' }, null);\r\n if (!collectionArray || !collectionArray[0]) {\r\n return false;\r\n }\r\n console.log(collectionArray);\r\n\r\n const collection = collectionArray.find(collectionItem => collectionItem.Id === collectionId);\r\n\r\n console.log(collection);\r\n\r\n if (!collection) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n // @info: This method is used to check whether product exists in the given collection\r\n const doesProductExistInCollection = async (productId: number, collectionId: number): Promise => {\r\n const { context } = props;\r\n try {\r\n const collectionArray = await getByCustomerAsync({ callerContext: context.actionContext, bypassCache: 'get' }, null);\r\n\r\n if (!collectionArray || !(collectionArray.length > 0)) {\r\n return false;\r\n }\r\n\r\n const collection = collectionArray.find(collectionItem => collectionItem.Id === collectionId);\r\n if (!collection) {\r\n return false;\r\n }\r\n\r\n const CommerceListLines: any = collection.CommerceListLines;\r\n for (const collectionProductItem of CommerceListLines) {\r\n if (collectionProductItem.ProductId === productId) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n } catch (e) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unknownErrorInMaori : MoeErrorMessages.unknownError);\r\n }\r\n };\r\n\r\n // @info: This method checks whether given name already exists in the existing collections\r\n const doesDuplicateNameExists = async (collectionName: string): Promise => {\r\n const { context } = props;\r\n const collectionList = await getByCustomerAsync({ callerContext: context.actionContext, bypassCache: 'get' }, null);\r\n // setCollectionArray(collectionList);\r\n if (collectionList) {\r\n const filteredItem = collectionList.find(collection => collection?.Name === collectionName);\r\n if (filteredItem) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.emptyCollectionsInMaori : MoeErrorMessages.emptyCollections);\r\n return {\r\n errorCode: 404,\r\n errorMessage: errorLang === MAORI_LANG ? MoeErrorMessages.emptyCollectionsInMaori : MoeErrorMessages.emptyCollections\r\n };\r\n }\r\n };\r\n\r\n // @info: This method is used specifically to create a collection\r\n const createCollection = async (): Promise => {\r\n setErrorMessage('');\r\n const { context } = props;\r\n const isNetworkAvailable = isInternetConnectionAvailable();\r\n if (isNetworkAvailable === false) {\r\n return;\r\n }\r\n\r\n if (user.isAuthenticated) {\r\n if (user && user.customerAccountNumber) {\r\n const listData: CommerceList = {\r\n CustomerId: user.customerAccountNumber,\r\n Name: `New collection ${makeid(5)}`,\r\n CommerceListTypeValue: 1,\r\n Id: 0\r\n };\r\n const isDuplicateName = await doesDuplicateNameExists(listData?.Name as string);\r\n console.log(isDuplicateName);\r\n if (!isDuplicateName) {\r\n try {\r\n console.log(listData);\r\n const commerceList = await createCommerceListAsync({ callerContext: context.actionContext }, listData);\r\n setIsCollectionCreated(true);\r\n setCollectionArray([\r\n {\r\n Id: commerceList.Id,\r\n Name: listData.Name,\r\n CustomerId: commerceList.CustomerId,\r\n CommerceListTypeValue: 1,\r\n collectionType: 'New',\r\n CommerceListLines: commerceList.CommerceListLines,\r\n IsPrivate: commerceList.IsPrivate\r\n },\r\n ...collectionArray\r\n ]);\r\n } catch (error) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unknownErrorInMaori : MoeErrorMessages.unknownError);\r\n if (context.telemetry) {\r\n context.telemetry.warning(error);\r\n context.telemetry.debug('[AddCollection] Unable to create a collection');\r\n }\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.duplicateNameInMaori : MoeErrorMessages.duplicateName);\r\n return Promise.reject({\r\n errorCode: 400,\r\n errorMessage: 'Same name already exists in collection'\r\n });\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.noAccountNumberInMaori : MoeErrorMessages.noAccountNumber);\r\n context.telemetry.debug('[AddCollection] Customer account number missing');\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unAuthenticatedInMaori : MoeErrorMessages.unAuthenticated);\r\n }\r\n };\r\n\r\n // @info: This method is used to create new collection and add product into collection\r\n const addToCollection = async (collectionId: number): Promise => {\r\n if (!hasBeenCalled) {\r\n setHasBeenCalled(true);\r\n setErrorMessage('');\r\n const isNetworkAvailable = isInternetConnectionAvailable();\r\n if (isNetworkAvailable === false) {\r\n return;\r\n }\r\n\r\n const { context } = props;\r\n if (user.isAuthenticated) {\r\n console.log(collectionId);\r\n const isCollectionAvailable = await doesCollectionExist(collectionId);\r\n console.log(isCollectionAvailable);\r\n if (!isCollectionAvailable) {\r\n const collection = collectionArray.find(collectionItem => collectionItem.Id === collectionId);\r\n const collectionName = collection?.Name;\r\n if (user && user.customerAccountNumber) {\r\n const listData: CommerceList = {\r\n CustomerId: user.customerAccountNumber,\r\n Name: collectionName,\r\n CommerceListTypeValue: 1,\r\n Id: 0\r\n };\r\n\r\n try {\r\n console.log(listData);\r\n const commerceList = await createCommerceListAsync({ callerContext: context.actionContext }, listData);\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n return addCollectionLine(commerceList.Id, (await product)?.RecordId as any);\r\n } catch (error) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(\r\n errorLang === MAORI_LANG ? MoeErrorMessages.unknownErrorInMaori : MoeErrorMessages.unknownError\r\n );\r\n if (context.telemetry) {\r\n context.telemetry.warning(error);\r\n context.telemetry.debug('[AddCollection] Unable to create a wishlist');\r\n }\r\n // propagateError(props, { status: 'FAILED' });\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(\r\n errorLang === MAORI_LANG ? MoeErrorMessages.noAccountNumberInMaori : MoeErrorMessages.noAccountNumber\r\n );\r\n context.telemetry.debug('[AddCollection] Customer account number missing');\r\n }\r\n } else {\r\n return addCollectionLine(collectionId, (await product)?.RecordId);\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unAuthenticatedInMaori : MoeErrorMessages.unAuthenticated);\r\n return;\r\n }\r\n setHasBeenCalled(false);\r\n return AsyncResult.resolve();\r\n }\r\n };\r\n\r\n // @info: This method is used to add product to the collection\r\n const addCollectionLine = async (collectionId: number, productId: number): Promise => {\r\n const { context } = props;\r\n\r\n try {\r\n if (user && user.customerAccountNumber) {\r\n const isCollectionLineAvailable = await doesProductExistInCollection(productId, collectionId);\r\n if (!isCollectionLineAvailable) {\r\n const createdCommerceList = await addLinesAsync({ callerContext: context.actionContext }, collectionId, [\r\n buildWishlistLine(productId, user.customerAccountNumber, collectionId)\r\n ]);\r\n console.log(createdCommerceList);\r\n context.actionContext.update(createGetByCustomerInput({}, null), [createdCommerceList]);\r\n if (context.telemetry) {\r\n context.telemetry.debug(`[AddCollectionLine] Added item to the wishlist ${createdCommerceList}`);\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(\r\n errorLang === MAORI_LANG ? MoeErrorMessages.duplicateResourceInMaori : MoeErrorMessages.duplicateResource\r\n );\r\n return;\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.noAccountNumberInMaori : MoeErrorMessages.noAccountNumber);\r\n context.telemetry.debug('[AddCollectionLine] Customer Account number missing');\r\n }\r\n } catch (error) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unknownErrorInMaori : MoeErrorMessages.unknownError);\r\n if (context.telemetry) {\r\n context.telemetry.warning(error);\r\n context.telemetry.debug(`[AddCollectionLine] Unable to add item to wishlist ${error}`);\r\n }\r\n // propagateError(props, { status: 'FAILED' });\r\n }\r\n\r\n setIsModalOpen(false);\r\n const successLang = getErrorOrSuccessMessage();\r\n openAlert(successLang === MAORI_LANG ? MoeSuccessMessages.addResourceInMaori : MoeSuccessMessages.addResource, true);\r\n //location.reload();\r\n return AsyncResult.resolve();\r\n };\r\n\r\n // @info: This method updates the collection name using collection id and new name\r\n const updateCollectionName = async (collectionId: number, changedCollectionName: string, setCollectionTitle: any) => {\r\n const { telemetry } = props.context;\r\n setErrorMessage('');\r\n const isNetworkAvailable = isInternetConnectionAvailable();\r\n if (isNetworkAvailable === false) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.networkOfflineInMaori : MoeErrorMessages.networkOffline);\r\n return;\r\n }\r\n if (!user?.isAuthenticated) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unAuthenticatedInMaori : MoeErrorMessages.unAuthenticated);\r\n return;\r\n }\r\n\r\n const isCollectionAvailable = await doesCollectionExist(collectionId);\r\n if (isCollectionAvailable) {\r\n const isDuplicateName = await doesDuplicateNameExists(changedCollectionName);\r\n if (!isDuplicateName) {\r\n try {\r\n const updateCommerceList = await updateAsync(\r\n { callerContext: props.context.actionContext },\r\n { Id: collectionId, Name: changedCollectionName }\r\n );\r\n // const collectionList = collectionArray.map(collection => {\r\n // if (collection?.Id === collectionId) {\r\n // collection.Name = changedCollectionName;\r\n // }\r\n // return collection;\r\n // });\r\n // setCollectionArray(collectionList);\r\n const collectionList = await getByCustomerAsync(\r\n { callerContext: props.context.actionContext, bypassCache: 'get' },\r\n null\r\n );\r\n setCollectionArray([...collectionList]);\r\n console.log('Updated commerce list', updateCommerceList);\r\n setIsModalOpen(false);\r\n const successLang = getErrorOrSuccessMessage();\r\n openAlert(\r\n successLang === MAORI_LANG\r\n ? MoeSuccessMessages.updateCollectionNameInMaori\r\n : MoeSuccessMessages.updateCollectionName,\r\n false\r\n );\r\n // openAlert(MoeSuccessMessages.updateCollectionName, false);\r\n } catch (e) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unknownErrorInMaori : MoeErrorMessages.unknownError);\r\n console.log(e);\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.duplicateNameInMaori : MoeErrorMessages.duplicateName);\r\n const filteredItem = collectionArray.find(collection => collection?.Id === collectionId);\r\n console.log('Filtered item in update collection', filteredItem);\r\n setCollectionTitle(filteredItem?.Name);\r\n return {\r\n errorCode: 400,\r\n errorMessage: 'Same name already exists in collection'\r\n };\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.emptyCollectionInMaori : MoeErrorMessages.emptyCollection);\r\n telemetry.debug(\"[Update] Can't update from wishlist since no wishlist exists OR there is no product data\");\r\n }\r\n\r\n return AsyncResult.resolve();\r\n };\r\n\r\n // @info: This method deletes the collection using collection id\r\n const deleteCollection = async (event: any, collectionId: number): Promise => {\r\n const isNetworkAvailable = isInternetConnectionAvailable();\r\n if (isNetworkAvailable === false) {\r\n return;\r\n }\r\n\r\n setErrorMessage('');\r\n event.stopPropagation();\r\n const { context } = props;\r\n const { telemetry } = context;\r\n\r\n console.log('Delete collection');\r\n\r\n if (context.request.user.isAuthenticated) {\r\n const isCollectionAvailable = await doesCollectionExist(collectionId);\r\n if (isCollectionAvailable) {\r\n const collection = collectionArray.find(collectionItem => collectionItem.Id === collectionId);\r\n try {\r\n const deleteCommerceList = await deleteAsync({ callerContext: props.context.actionContext }, { Id: collection.Id });\r\n console.log('[RemoveCollection] collection deleted successfully', deleteCommerceList);\r\n } catch (e) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unknownErrorInMaori : MoeErrorMessages.unknownError);\r\n console.log(e);\r\n }\r\n } else if (telemetry) {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.emptyCollectionInMaori : MoeErrorMessages.emptyCollection);\r\n telemetry.debug(\"[RemoveCollection] Can't remove collection since no collection exists \");\r\n }\r\n } else {\r\n const errorLang = getErrorOrSuccessMessage();\r\n setErrorMessage(errorLang === MAORI_LANG ? MoeErrorMessages.unAuthenticatedInMaori : MoeErrorMessages.unAuthenticated);\r\n return;\r\n }\r\n\r\n const collectionList = await getByCustomerAsync(props.context.actionContext, null);\r\n setCollectionArray(collectionList);\r\n\r\n return AsyncResult.resolve();\r\n };\r\n\r\n const _alertModal = (): INodeProps => {\r\n return {\r\n tag: Modal,\r\n placement: 'bottom-end',\r\n hideArrow: false,\r\n className: 'msc-modal__dialog-success',\r\n wrapClassName: '',\r\n isOpen: isAlertOpen,\r\n toggle: () => {\r\n setAlertOpen(false);\r\n if (isRefreshPage) {\r\n location.reload();\r\n }\r\n }\r\n };\r\n };\r\n const closeAlert = () => {\r\n setAlertOpen(false);\r\n setAlertMessage('');\r\n if (isRefreshPage) {\r\n setIsRefreshPage(false);\r\n location.reload();\r\n }\r\n };\r\n const openAlert = (msg: string, isreload: boolean) => {\r\n setAlertOpen(true);\r\n setAlertMessage(msg);\r\n setIsRefreshPage(isreload);\r\n };\r\n\r\n return (\r\n
\r\n openModal(e)}\r\n tabIndex={0}\r\n onKeyPress={(event: any) => (event.charCode === 13 ? openModal(event) : null)}\r\n >\r\n \r\n \r\n {collectionSiteLang === 'maori' ? props.config.modalTitleMaori : props.config.modalTitle}\r\n

\r\n
\r\n \r\n {user?.isAuthenticated ? (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
{errorOrNotificationMsgLang === MAORI_LANG ? 'Kua tutuki' : 'Success'}
\r\n
\r\n
\r\n {\r\n closeAlert();\r\n }}\r\n className='msc-modal__close-button'\r\n aria-label='Close'\r\n >\r\n
\r\n
{alertMessage}
\r\n
\r\n
\r\n \r\n );\r\n};\r\n","/* eslint-disable security/detect-object-injection */\nimport {\n ENGLISH_LANG,\n MAORI_LANG,\n MAORI_LANG_CODE,\n ERROR_OR_NOTIFICATION,\n ADD_TO_KETE,\n COLLECTIONS,\n DOWNLOAD_KETE,\n SEARCH,\n HEADER_FOOTER,\n NAVIGATION,\n HOME_PAGE,\n LANDING_PAGE,\n OCH,\n TWK,\n KWR,\n KOH,\n NZC,\n METADATA,\n SOCIAL_SHARE,\n MY_PROFILE,\n ACTION_BUTTONS,\n COLLECTIONS_SITE_LANGUAGE,\n ADD_TO_KETE_SITE_LANGUAGE,\n DOWNLOAD_KETE_SITE_LANGUAGE,\n SEARCH_SITE_LANGUAGE,\n ENGLISH_OTHER_LANG_CODE,\n CUST_MAORI_LANG_CODE,\n VIDEO_PLAYER,\n DEVELOPMENT_LANGUAGE_TOGGLE,\n DEVELOPMENT_LANGUAGE_PREFERENCE,\n DEVELOPMENT_SITE_NAME\n} from './constants';\nimport { readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\nimport MsDyn365, { ICoreContext } from '@msdyn365-commerce/core';\n\n/*\n This variable is used to set development mode without localstorage errors\n !!!important Please set to false when pushing the code\n Use this only for local development\n*/\nexport const IS_LOCAL_DEVELOPMENT = false;\n\nexport const getToggleLang = (context: any) => {\n console.log('gettogglecontext', context);\n if (IS_LOCAL_DEVELOPMENT) {\n return DEVELOPMENT_LANGUAGE_TOGGLE;\n }\n\n const siteNameFromCache = getSiteNameFromCache(KWR, context);\n if (siteNameFromCache === OCH || siteNameFromCache === KWR) {\n return context.request.locale.toLowerCase() === MAORI_LANG_CODE ? MAORI_LANG : ENGLISH_LANG;\n } else {\n return context.request.locale.toLowerCase() === ENGLISH_OTHER_LANG_CODE ? ENGLISH_LANG : MAORI_LANG;\n }\n};\n\nexport const getUserPrefLang = (customerAccountNumber: number, context: any): any => {\n console.log('getprefcontext', context);\n if (IS_LOCAL_DEVELOPMENT) {\n return DEVELOPMENT_LANGUAGE_PREFERENCE;\n }\n\n if (context.request.user.isAuthenticated) {\n if (MsDyn365.isBrowser && localStorage !== undefined) {\n return localStorage.getItem(`moeUserPrefLang${customerAccountNumber}`);\n }\n }\n\n // This piece of code is executed when the user is not logged in\n // We will set toggle language as preferred language\n const siteNameFromCache = getSiteNameFromCache(KWR, context);\n if (siteNameFromCache === OCH || siteNameFromCache === KWR) {\n return context.request.locale.toLowerCase() === MAORI_LANG_CODE ? MAORI_LANG : ENGLISH_LANG;\n } else {\n return context.request.locale.toLowerCase() === ENGLISH_OTHER_LANG_CODE ? ENGLISH_LANG : MAORI_LANG;\n }\n};\n\nexport const getUserPreferredLanguage = (\n siteName: string,\n moduleName: string,\n userPrefLang: string,\n toggleLang: string,\n context: any\n): any => {\n let siteNameFromCache;\n if (IS_LOCAL_DEVELOPMENT) {\n siteNameFromCache = DEVELOPMENT_SITE_NAME;\n } else {\n siteNameFromCache = getSiteNameFromCache(siteName, context);\n }\n // const siteNameFromCache = siteName;\n\n // For Online Curriculum Hub site\n if (siteNameFromCache === OCH) {\n switch (moduleName) {\n case ERROR_OR_NOTIFICATION:\n return toggleLang;\n\n case HEADER_FOOTER:\n return toggleLang;\n\n case HOME_PAGE:\n return toggleLang;\n\n case ACTION_BUTTONS:\n return toggleLang;\n\n default:\n return ENGLISH_LANG;\n }\n }\n\n // For New Zealand Curriculum Online site\n if (siteNameFromCache === NZC) {\n switch (moduleName) {\n case METADATA:\n return ENGLISH_LANG;\n\n case NAVIGATION:\n return ENGLISH_LANG;\n\n case HEADER_FOOTER:\n return ENGLISH_LANG;\n\n case HOME_PAGE:\n return ENGLISH_LANG;\n\n case SOCIAL_SHARE:\n return ENGLISH_LANG;\n\n case ERROR_OR_NOTIFICATION:\n return ENGLISH_LANG;\n\n case MY_PROFILE:\n return ENGLISH_LANG;\n\n case DOWNLOAD_KETE:\n return ENGLISH_LANG;\n\n case DOWNLOAD_KETE_SITE_LANGUAGE:\n return ENGLISH_LANG;\n\n case COLLECTIONS:\n return ENGLISH_LANG;\n\n case ADD_TO_KETE:\n return ENGLISH_LANG;\n\n case ADD_TO_KETE_SITE_LANGUAGE:\n return ENGLISH_LANG;\n\n case SEARCH:\n return ENGLISH_LANG;\n\n case SEARCH_SITE_LANGUAGE:\n return ENGLISH_LANG;\n\n case ACTION_BUTTONS:\n return ENGLISH_LANG;\n\n case COLLECTIONS_SITE_LANGUAGE:\n return ENGLISH_LANG;\n\n case VIDEO_PLAYER:\n return ENGLISH_LANG;\n\n default:\n return ENGLISH_LANG;\n }\n }\n\n // For Te Whāriki Online site\n if (siteNameFromCache === TWK) {\n switch (moduleName) {\n case METADATA:\n return ENGLISH_LANG;\n\n case NAVIGATION:\n return MAORI_LANG;\n\n case HEADER_FOOTER:\n return userPrefLang;\n\n case HOME_PAGE:\n return userPrefLang;\n\n case LANDING_PAGE:\n return userPrefLang;\n\n case SOCIAL_SHARE:\n return userPrefLang;\n\n case ERROR_OR_NOTIFICATION:\n return userPrefLang;\n\n case MY_PROFILE:\n return userPrefLang;\n\n case DOWNLOAD_KETE:\n return MAORI_LANG;\n\n case DOWNLOAD_KETE_SITE_LANGUAGE:\n return userPrefLang;\n\n case COLLECTIONS:\n return MAORI_LANG;\n\n case COLLECTIONS_SITE_LANGUAGE:\n return userPrefLang;\n\n case ADD_TO_KETE:\n return MAORI_LANG;\n\n case ADD_TO_KETE_SITE_LANGUAGE:\n return userPrefLang;\n\n case SEARCH:\n return MAORI_LANG;\n\n case SEARCH_SITE_LANGUAGE:\n return userPrefLang;\n\n case ACTION_BUTTONS:\n return userPrefLang;\n\n case VIDEO_PLAYER:\n return userPrefLang;\n\n default:\n return ENGLISH_LANG;\n }\n }\n\n // For Te Kōhanga Reo site\n if (siteNameFromCache === KOH) {\n switch (moduleName) {\n case HOME_PAGE:\n return MAORI_LANG;\n\n case ACTION_BUTTONS:\n return MAORI_LANG;\n\n case VIDEO_PLAYER:\n return MAORI_LANG;\n\n default:\n return MAORI_LANG;\n }\n }\n\n // For Kauwhata Reo site\n if (siteNameFromCache === KWR) {\n switch (moduleName) {\n case METADATA:\n return toggleLang;\n\n case NAVIGATION:\n return toggleLang;\n\n case HEADER_FOOTER:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case HOME_PAGE:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case SOCIAL_SHARE:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case ERROR_OR_NOTIFICATION:\n return toggleLang;\n\n case MY_PROFILE:\n return userPrefLang;\n\n case DOWNLOAD_KETE:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case DOWNLOAD_KETE_SITE_LANGUAGE:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case COLLECTIONS:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case COLLECTIONS_SITE_LANGUAGE:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case ADD_TO_KETE:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case ADD_TO_KETE_SITE_LANGUAGE:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case SEARCH:\n return MAORI_LANG;\n\n case SEARCH_SITE_LANGUAGE:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case ACTION_BUTTONS:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n case VIDEO_PLAYER:\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\n\n default:\n return MAORI_LANG;\n }\n }\n\n switch (moduleName) {\n case DOWNLOAD_KETE:\n return MAORI_LANG;\n\n case COLLECTIONS:\n return MAORI_LANG;\n\n case ADD_TO_KETE:\n return MAORI_LANG;\n\n case SEARCH:\n return MAORI_LANG;\n\n default:\n return toggleLang;\n }\n};\n\nexport function setCustomerLangInCache(props: { context: ICoreContext }) {\n const { context } = props;\n const user = context.request.user;\n\n if (MsDyn365.isBrowser && !localStorage.getItem(`moeUserPrefLang${user.customerAccountNumber}`)) {\n void readAsync({ callerContext: context.actionContext, bypassCache: 'get' }, user.customerAccountNumber as any).then(\n customerData => {\n const customerLang = customerData.Language;\n localStorage.setItem(\n `moeUserPrefLang${user.customerAccountNumber}`,\n customerLang?.toLowerCase() === CUST_MAORI_LANG_CODE ? MAORI_LANG : ENGLISH_LANG\n );\n window.location.reload();\n }\n );\n }\n}\n\nexport function setTwksiteLangInCache(props: { context: ICoreContext }, siteName: string) {\n if (MsDyn365.isBrowser) {\n localStorage.setItem(`moeTwkSiteLang`, siteName);\n }\n}\n\nexport function getTwksiteLangInCache() {\n return MsDyn365.isBrowser ? localStorage.getItem(`moeTwkSiteLang`) : null;\n}\n\nexport function setOnlineChannelInfoInCache(context: ICoreContext, channelInfo: string) {\n const hostname = context.request.url?.requestUrl?.hostname;\n if (MsDyn365.isBrowser && localStorage !== undefined) {\n localStorage.setItem(`moeOnlineChannelInfo${hostname}`, channelInfo);\n localStorage.setItem('moeOnlineChannelInfoTimer', JSON.stringify(new Date().getTime()));\n }\n}\n\nexport function getOnlineChannelInfoTimer(context: ICoreContext): number {\n return MsDyn365.isBrowser ? JSON.parse(localStorage.getItem('moeOnlineChannelInfoTimer') || '0') : '0';\n}\n\nexport function getSiteNameFromCache(siteName: string, context: ICoreContext) {\n const hostname = context.request.url?.requestUrl?.hostname;\n let onlineChannels: any[] = [];\n\n if (MsDyn365.isBrowser && localStorage !== undefined) {\n onlineChannels = JSON.parse(localStorage.getItem(`moeOnlineChannelInfo${hostname}`) || '[]');\n }\n\n if (onlineChannels?.length > 0) {\n const channelIndex = onlineChannels.findIndex((item: any) => item.Id === context.request.apiSettings.channelId);\n if (channelIndex > -1) {\n if (onlineChannels[channelIndex]?.Name?.includes('ealand')) {\n return NZC;\n }\n\n if (onlineChannels[channelIndex]?.Name?.includes('hanga')) {\n return KOH;\n }\n\n if (onlineChannels[channelIndex]?.Name?.includes('hildhood')) {\n return TWK;\n }\n\n if (onlineChannels[channelIndex]?.Name?.includes('whata')) {\n return KWR;\n }\n\n if (onlineChannels[channelIndex]?.Name?.includes('Hub')) {\n return OCH;\n }\n }\n } else {\n return siteName;\n }\n\n return siteName;\n}\n"],"names":["CollectionItem","_ref","context","typeName","id","className","index","isCheckboxEnabled","onCheckboxSelect","collection","isClickCollectionEnabled","onClickCollection","isEditEnabled","isDeleteEnabled","isTickMarkVisible","toggleEditableCollection","deleteCollection","currentIndex","selectCollection","selectedCollection","updateCollectionName","setErrorMessage","MoeErrorMessages","preferredLanguageForError","siteLang","otherSiteCollectionCount","apiSettings","request","isDisabled","setIsDisabled","useState","collectionTitle","setCollectionTitle","Name","backgroundImage","setBackgroundImage","isChecked","setIsChecked","collectionNameRef","useRef","languageAttributes","noOfResourcesText","noOfResourcesTextInMaori","editText","editTextInMaori","deleteText","deleteTextInMaori","toggleEdit","event","_collectionNameRef$cu","stopPropagation","preventDefault","current","focus","onUpdateCollectionName","_event","_event2","_collectionNameRef$cu2","_collectionNameRef$cu3","_collectionNameRef$cu4","_collectionNameRef$cu5","console","log","value","makeid","length","exceededCollectionNameLimit","exceededCollectionNameLimitInMaori","Id","duplicateName","duplicateNameInMaori","result","characters","charactersLength","i","charAt","Math","floor","random","async","commerceList","CommerceListLines","_commerceList$","_context$request","_productDetails$","productId","ProductId","channelId","actionContext","productImageUrl","generateImageUrl","imageUrl","startsWith","preImageUrl","baseImageUrl","encodeURIComponent","getByIdsAsync","PrimaryImageUrl","getBackgroundImage","onCollectionClick","setTimeout","_document","document","querySelector","React","tabIndex","checked","type","onChange","_collection$CommerceL","noEmptyCollectionSharing","noEmptyCollectionSharingInMaori","collectionId","onClick","onKeyPress","e","charCode","onError","src","alt","title","slice","ref","stopPropogation","disabled","getCollectionCount","_collection$CommerceL2","count","MAORI_LANG","FaPen","role","FaCheck","FaTrashAlt","props","_props$config","_props$config2","user","resources","product","data","toggleLang","getToggleLang","userPrefLang","getUserPrefLang","customerAccountNumber","CollectionLang","getUserPreferredLanguage","config","siteName","COLLECTIONS","ActionButtonLang","ACTION_BUTTONS","errorOrNotificationMsgLang","ERROR_OR_NOTIFICATION","collectionSiteLang","COLLECTIONS_SITE_LANGUAGE","appendLangWordProf","appendLangWordActBtn","appendLangWordError","unknownError","emptyCollection","emptyCollections","duplicateResource","unAuthenticated","noAccountNumber","networkOffline","unknownErrorInMaori","emptyCollectionInMaori","emptyCollectionsInMaori","duplicateResourceInMaori","unAuthenticatedInMaori","noAccountNumberInMaori","networkOfflineInMaori","MoeSuccessMessages","createCOllection","addResource","updateCollection","deleteProduct","createCOllectionInMaori","addResourceInMaori","updateCollectionInMaori","updateCollectionNameInMaori","deleteCollectionInMaori","deleteProductInMaori","MoeModuleTranslations","notLoggedIn","addToCollectionText","heyText","addNewCollection","newCollectionText","collectionArray","setCollectionArray","isModalOpen","setIsModalOpen","setSelectedCollection","isCollectionEditable","setIsCollectionEditable","setCurrentIndex","isCollectionCreated","setIsCollectionCreated","errorMessage","isAlertOpen","setAlertOpen","alertMessage","setAlertMessage","isRefreshPage","setIsRefreshPage","scrollRef","hasBeenCalled","setHasBeenCalled","getErrorOrSuccessMessage","openModal","isAuthenticated","collectionList","getByCustomerAsync","callerContext","bypassCache","err","errorLang","error","getCollectionList","User","IsAuthenticated","closeModal","isInternetConnectionAvailable","_window","_window2","window","navigator","onLine","doesCollectionExist","find","collectionItem","doesDuplicateNameExists","collectionName","errorCode","createCollection","listData","CustomerId","CommerceListTypeValue","isDuplicateName","Promise","reject","createCommerceListAsync","collectionType","IsPrivate","telemetry","warning","debug","addCollectionLine","collectionProductItem","doesProductExistInCollection","createdCommerceList","addLinesAsync","buildWishlistLine","update","createGetByCustomerInput","successLang","openAlert","AsyncResult","resolve","msg","isreload","AiOutlinePlus","addToCollectionTextInMaori","modalTitleMaori","modalTitle","Node","Object","assign","tag","Modal","placement","hideArrow","wrapClassName","isOpen","toggle","newCollectionTextInMaori","createCollectionTextInMaori","createCollectionText","FaPlus","closeTextInMaori","closeText","style","transform","marginBottom","firstName","map","key","deleteCommerceList","deleteAsync","changedCollectionName","filteredItem","updateCommerceList","updateAsync","fontWeight","isCollectionAvailable","_await$product2","RecordId","_await$product","addToCollection","location","reload","IS_LOCAL_DEVELOPMENT","DEVELOPMENT_LANGUAGE_TOGGLE","siteNameFromCache","getSiteNameFromCache","KWR","OCH","locale","toLowerCase","MAORI_LANG_CODE","ENGLISH_LANG","ENGLISH_OTHER_LANG_CODE","DEVELOPMENT_LANGUAGE_PREFERENCE","MsDyn365","isBrowser","undefined","localStorage","getItem","moduleName","DEVELOPMENT_SITE_NAME","HEADER_FOOTER","HOME_PAGE","NZC","METADATA","NAVIGATION","SOCIAL_SHARE","MY_PROFILE","DOWNLOAD_KETE","DOWNLOAD_KETE_SITE_LANGUAGE","ADD_TO_KETE","ADD_TO_KETE_SITE_LANGUAGE","SEARCH","SEARCH_SITE_LANGUAGE","VIDEO_PLAYER","TWK","LANDING_PAGE","KOH","setCustomerLangInCache","readAsync","then","customerData","customerLang","Language","setItem","CUST_MAORI_LANG_CODE","setOnlineChannelInfoInCache","channelInfo","_context$request$url","hostname","url","requestUrl","JSON","stringify","Date","getTime","getOnlineChannelInfoTimer","parse","_context$request$url2","_onlineChannels","onlineChannels","channelIndex","findIndex","item","_onlineChannels$chann","_onlineChannels$chann2","_onlineChannels$chann3","_onlineChannels$chann4","_onlineChannels$chann5","includes"],"sourceRoot":""}