{"version":3,"sources":["webpack://VA/./src/components/Header/DesktopControls.js","webpack://VA/./src/components/Header/renderLanguages.js","webpack://VA/./src/utilities/getLanguages.js"],"names":["CloseButton","React","lazy","MinimizeButton","LiveChatButton","FullScreenButton","SurveyButton","MainMenu","LanguagesMenu","observer","props","ref","_useConfig","useConfig","apiURL","_useConfig$header","header","desktopControls","controls","_useStores","useStores","chatWindow","app","i18n","useTranslation","_React$useState","useState","filteredDesktopControls","setFilteredDesktopControls","configControls","Components","useMemo","_extends","mainMenu","languages","liveChat","survey","isPopIn","fullscreen","minimize","close","renderControlItem","useCallback","_ref","idx","name","_ref$items","items","Component","createElement","key","className","useEffect","filterLanguages","forEach","control","enabled","getDefaultLanguage","filter","length","changeLanguage","setIsChangeLanguage","filteredControls","filteredItems","item","filteredItemsLanguages","renderLanguages","Controls","Suspense","fallback","sort","a","b","position","map","forwardRef","baseUrl","defaultLang","languagesList","id","type","functionArgs","functionName","label","icon","getLanguages","fullItem","find","language","newItem","merge","unshift","splice","findIndex"],"mappings":"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,GAAI,EACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,UACPC,KAASR,EAAO,yCAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,SACPC,KAASR,EAAO,0CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,aACPC,KAASR,EAAO,4CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,UACPC,KAASR,EAAO,0CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,UACPC,KAASR,EAAO,yCAElB,CACEG,GAAI,GACJlC,KAAM,UACNmC,KAAM,WACNC,aAAc,UACdC,aAAc,iBACdC,MAAO,UACPC,KAASR,EAAO,yCAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,WACPC,KAASR,EAAO,yCAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,UACPC,KAASR,EAAO,0CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,QACPC,KAASR,EAAO,0CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,YACPC,KAASR,EAAO,2CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,WACPC,KAASR,EAAO,2CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,OACPC,KAASR,EAAO,4CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,SACPC,KAASR,EAAO,+CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,QACPC,KAASR,EAAO,+CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,QACPC,KAASR,EAAO,yCAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,QACPC,KAASR,EAAO,2CAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,iBACPC,KAASR,EAAO,yCAElB,CACEG,GAAI,GACJlC,KAAM,KACNmC,KAAM,WACNC,aAAc,KACdC,aAAc,iBACdC,MAAO,UACPC,KAASR,EAAO,2CDzNES,CAAaT,GAC7BX,EAAyB/C,EAASwD,KAAI,SAAAV,GAC1C,IAAMsB,EAAWR,EAAcS,MAAK,SAAAC,GAAQ,OAAIA,EAAS3C,OAASmB,EAAKnB,QACjE4C,EAAUC,IAAM1B,EAAMsB,GAI5B,OAHAtB,EAAO,IACPA,EAAIhC,IAAA,GAAQyD,IACR,QAAWZ,EAAcb,EAAKnB,OAASgC,EAAgC,IAAlBb,EAAKS,SACvDT,KAQT,OANAC,EAAuB0B,QACrB1B,EAAuB2B,OACrB3B,EAAuB4B,WAAU,SAAA7B,GAAI,OAAqB,IAAjBA,EAAI,WAC7C,GACA,IAEGC","file":"1.js","sourcesContent":["import forEach from 'lodash/forEach';\r\nimport { observer } from 'mobx-react-lite';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { useConfig } from '../../hooks';\r\nimport { useStores } from '../../stores';\r\nimport { Controls } from './Controls';\r\nimport renderLanguages from './renderLanguages';\r\n\r\nconst CloseButton = React.lazy(() => import('./CloseButton'));\r\nconst MinimizeButton = React.lazy(() => import('./MinimizeButton'));\r\nconst LiveChatButton = React.lazy(() => import('./LiveChatButton'));\r\nconst FullScreenButton = React.lazy(() => import('./FullScreenButton'));\r\nconst SurveyButton = React.lazy(() => import('./SurveyButton'));\r\nconst MainMenu = React.lazy(() => import('./MainMenu'));\r\nconst LanguagesMenu = React.lazy(() => import('./LanguagesMenu'));\r\n\r\nconst DesktopControls = (props, ref) => {\r\n const {\r\n apiURL,\r\n header: { desktopControls, controls }\r\n } = useConfig();\r\n const { chatWindow, app } = useStores();\r\n const { i18n } = useTranslation();\r\n const [filteredDesktopControls, setFilteredDesktopControls] = React.useState([]);\r\n const configControls = controls || desktopControls;\r\n const Components = React.useMemo(\r\n () => ({\r\n mainMenu: MainMenu,\r\n languages: LanguagesMenu,\r\n liveChat: LiveChatButton,\r\n survey: SurveyButton,\r\n ...(chatWindow.isPopIn && {\r\n fullscreen: FullScreenButton,\r\n minimize: MinimizeButton,\r\n close: CloseButton\r\n })\r\n }),\r\n [chatWindow.isPopIn]\r\n );\r\n\r\n const renderControlItem = React.useCallback(\r\n ({ name, items = [] }, idx) => {\r\n const Component = Components[name];\r\n\r\n if (Component) {\r\n return ;\r\n }\r\n\r\n return null;\r\n },\r\n [Components]\r\n );\r\n\r\n React.useEffect(() => {\r\n let filterLanguages;\r\n forEach(configControls, control => {\r\n if (control.name === 'languages') {\r\n filterLanguages = control;\r\n }\r\n });\r\n if (!filterLanguages.enabled) {\r\n const getDefaultLanguage = filterLanguages.items.filter(control => control.enabled);\r\n if (getDefaultLanguage.length) {\r\n i18n.changeLanguage(getDefaultLanguage[0].name);\r\n app.setIsChangeLanguage(true, getDefaultLanguage[0].name);\r\n }\r\n }\r\n\r\n const filteredControls = configControls.filter(control => control.enabled);\r\n forEach(filteredControls, control => {\r\n if (control.items && control.items.length) {\r\n const filteredItems = control.items.filter(item => item.enabled);\r\n if (control.name === 'languages') {\r\n const filteredItemsLanguages = renderLanguages(filteredItems, apiURL, control.default);\r\n control.items = filteredItemsLanguages;\r\n } else {\r\n control.items = filteredItems;\r\n }\r\n return control.items;\r\n }\r\n\r\n return null;\r\n });\r\n setFilteredDesktopControls(filteredControls);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {filteredDesktopControls.length\r\n ? filteredDesktopControls.sort((a, b) => a.position - b.position).map(renderControlItem)\r\n : configControls.sort((a, b) => a.position - b.position).map(renderControlItem)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(DesktopControls, { forwardRef: true });\r\n","import merge from 'deepmerge';\r\n\r\nimport { getLanguages } from '../../utilities';\r\n\r\nexport default function renderLanguages(controls, baseUrl, defaultLang) {\r\n const languagesList = getLanguages(baseUrl);\r\n const filteredItemsLanguages = controls.map(item => {\r\n const fullItem = languagesList.find(language => language.name === item.name);\r\n const newItem = merge(item, fullItem);\r\n item = {};\r\n item = { ...newItem };\r\n item.default = defaultLang ? item.name === defaultLang : item.position === 1;\r\n return item;\r\n });\r\n filteredItemsLanguages.unshift(\r\n filteredItemsLanguages.splice(\r\n filteredItemsLanguages.findIndex(item => item.default === true),\r\n 1\r\n )[0]\r\n );\r\n return filteredItemsLanguages;\r\n}\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport function getLanguages(baseUrl) {\r\n /**\r\n * the original link for icons\r\n * https://icons.iconarchive.com/icons/custom-icon-design/round-world-flags/256/United-kingdom-icon.png\r\n */\r\n\r\n const LANGUAGES = [\r\n {\r\n id: 1,\r\n name: 'en-GB',\r\n type: 'language',\r\n functionArgs: 'en-GB',\r\n functionName: 'changeLanguage',\r\n label: 'English',\r\n icon: `${baseUrl}/CFP2/images/languages/United-kingdom-icon.png`\r\n },\r\n {\r\n id: 2,\r\n name: 'ms',\r\n type: 'language',\r\n functionArgs: 'ms',\r\n functionName: 'changeLanguage',\r\n label: 'Malay',\r\n icon: `${baseUrl}/CFP2/images/languages/Malaysia-icon.png`\r\n },\r\n {\r\n id: 3,\r\n name: 'zh-Hans',\r\n type: 'language',\r\n functionArgs: 'zh-Hans',\r\n functionName: 'changeLanguage',\r\n label: 'Chinese', // Chinese Simplified\r\n icon: `${baseUrl}/CFP2/images/languages/China-icon.png`\r\n },\r\n {\r\n id: 4,\r\n name: 'ta',\r\n type: 'language',\r\n functionArgs: 'ta',\r\n functionName: 'changeLanguage',\r\n label: 'Tamil',\r\n icon: `${baseUrl}/CFP2/images/languages/India-icon.png`\r\n },\r\n {\r\n id: 7,\r\n name: 'fr',\r\n type: 'language',\r\n functionArgs: 'fr',\r\n functionName: 'changeLanguage',\r\n label: 'French',\r\n icon: `${baseUrl}/CFP2/images/languages/France-icon.png`\r\n },\r\n {\r\n id: 8,\r\n name: 'de',\r\n type: 'language',\r\n functionArgs: 'de',\r\n functionName: 'changeLanguage',\r\n label: 'German',\r\n icon: `${baseUrl}/CFP2/images/languages/Germany-icon.png`\r\n },\r\n {\r\n id: 9,\r\n name: 'it',\r\n type: 'language',\r\n functionArgs: 'it',\r\n functionName: 'changeLanguage',\r\n label: 'Italian',\r\n icon: `${baseUrl}/CFP2/images/languages/Italy-icon.png`\r\n },\r\n {\r\n id: 10,\r\n name: 'pl',\r\n type: 'language',\r\n functionArgs: 'pl',\r\n functionName: 'changeLanguage',\r\n label: 'Polish',\r\n icon: `${baseUrl}/CFP2/images/languages/Poland-icon.png`\r\n },\r\n {\r\n id: 11,\r\n name: 'pt',\r\n type: 'language',\r\n functionArgs: 'pt',\r\n functionName: 'changeLanguage',\r\n label: 'Portuguese',\r\n icon: `${baseUrl}/CFP2/images/languages/Portugal-icon.png`\r\n },\r\n {\r\n id: 12,\r\n name: 'ru',\r\n type: 'language',\r\n functionArgs: 'ru',\r\n functionName: 'changeLanguage',\r\n label: 'Russian',\r\n icon: `${baseUrl}/CFP2/images/languages/Russia-icon.png`\r\n },\r\n {\r\n id: 13,\r\n name: 'es',\r\n type: 'language',\r\n functionArgs: 'es',\r\n functionName: 'changeLanguage',\r\n label: 'Spanish',\r\n icon: `${baseUrl}/CFP2/images/languages/Spain-icon.png`\r\n },\r\n {\r\n id: 14,\r\n name: 'zh-Hant',\r\n type: 'language',\r\n functionArgs: 'zh-Hant',\r\n functionName: 'changeLanguage',\r\n label: 'Chinese', // Chinese Traditional\r\n icon: `${baseUrl}/CFP2/images/languages/China-icon.png`\r\n },\r\n {\r\n id: 15,\r\n name: 'ja',\r\n type: 'language',\r\n functionArgs: 'ja',\r\n functionName: 'changeLanguage',\r\n label: 'Japanese',\r\n icon: `${baseUrl}/CFP2/images/languages/Japan-icon.png`\r\n },\r\n {\r\n id: 16,\r\n name: 'tr',\r\n type: 'language',\r\n functionArgs: 'tr',\r\n functionName: 'changeLanguage',\r\n label: 'Turkish',\r\n icon: `${baseUrl}/CFP2/images/languages/Turkey-icon.png`\r\n },\r\n {\r\n id: 17,\r\n name: 'el',\r\n type: 'language',\r\n functionArgs: 'el',\r\n functionName: 'changeLanguage',\r\n label: 'Greek',\r\n icon: `${baseUrl}/CFP2/images/languages/Greece-icon.png`\r\n },\r\n {\r\n id: 18,\r\n name: 'hu',\r\n type: 'language',\r\n functionArgs: 'hu',\r\n functionName: 'changeLanguage',\r\n label: 'Hungarian',\r\n icon: `${baseUrl}/CFP2/images/languages/Hungary-icon.png`\r\n },\r\n {\r\n id: 19,\r\n name: 'ro',\r\n type: 'language',\r\n functionArgs: 'ro',\r\n functionName: 'changeLanguage',\r\n label: 'Romanian',\r\n icon: `${baseUrl}/CFP2/images/languages/Romania-icon.png`\r\n },\r\n {\r\n id: 20,\r\n name: 'th',\r\n type: 'language',\r\n functionArgs: 'th',\r\n functionName: 'changeLanguage',\r\n label: 'Thai',\r\n icon: `${baseUrl}/CFP2/images/languages/Thailand-icon.png`\r\n },\r\n {\r\n id: 21,\r\n name: 'ko',\r\n type: 'language',\r\n functionArgs: 'ko',\r\n functionName: 'changeLanguage',\r\n label: 'Korean',\r\n icon: `${baseUrl}/CFP2/images/languages/South-Korea-icon.png`\r\n },\r\n {\r\n id: 22,\r\n name: 'nl',\r\n type: 'language',\r\n functionArgs: 'nl',\r\n functionName: 'changeLanguage',\r\n label: 'Dutch',\r\n icon: `${baseUrl}/CFP2/images/languages/Netherlands-icon.png`\r\n },\r\n {\r\n id: 23,\r\n name: 'cy',\r\n type: 'language',\r\n functionArgs: 'cy',\r\n functionName: 'changeLanguage',\r\n label: 'Welsh',\r\n icon: `${baseUrl}/CFP2/images/languages/Wales-icon.png`\r\n },\r\n {\r\n id: 24,\r\n name: 'ga',\r\n type: 'language',\r\n functionArgs: 'ga',\r\n functionName: 'changeLanguage',\r\n label: 'Irish',\r\n icon: `${baseUrl}/CFP2/images/languages/Ireland-icon.png`\r\n },\r\n {\r\n id: 25,\r\n name: 'ht',\r\n type: 'language',\r\n functionArgs: 'ht',\r\n functionName: 'changeLanguage',\r\n label: 'Haitian Creole',\r\n icon: `${baseUrl}/CFP2/images/languages/Haiti-icon.png`\r\n },\r\n {\r\n id: 26,\r\n name: 'sv',\r\n type: 'language',\r\n functionArgs: 'sv',\r\n functionName: 'changeLanguage',\r\n label: 'Swedish',\r\n icon: `${baseUrl}/CFP2/images/languages/Sweden-icon.png`\r\n }\r\n ];\r\n\r\n return LANGUAGES;\r\n}\r\n"],"sourceRoot":""}