{"version":3,"file":"AudienceSelector.js","names":["CONFIG","listClass","activeClass","countryListId","userTypeListId","submitId","submitEndpoint","profilesEndpoint","cancelTop","cancelBottom","AudienceSelector","userLoggedIn","width","displayHeader","backdropClose","scrollLock","focusTrap","activeCountry","undefined","activeUserType","$form","countryTplData","userTplData","template","_","document","querySelector","innerText","confirmationTpl","listTplDesktop","listTplMobile","ajax","get","then","data","countries","userTypes","countryList","isMobile","openSelector","getElementById","setAttribute","location","pathname","search","hash","userCountryType","userInvestorType","defaultUserData","country","investorType","cookieUserData","CookieHelper","getCookie","artweb_country","artweb_investorType","countryIndex","findIndexByAttr","userIndex","userId","id","setActiveCountry","setActiveUserType","showConfirmation","setContent","show","e","isInt","type","which","elementId","target","getAttribute","selectedOptions","value","items","permittedUserTypes","userTypeMarkup","newFormAction","protocol","hostName","removeActiveState","selectedElement","classList","add","code","userTypeElement","innerHTML","focus","isId","filter","val","parseInt","parent","activeElements","remove","removeAttribute","confirmationTplData","title","toLowerCase","userTypeDefinitions","indexOf","arr","atr","i","length","$","on","bind","closeWindow","url","window","href","endsWith","slice","assign","key","Modal","instance","init"],"sources":["components/AudienceSelector.js"],"sourcesContent":["import {Modal} from './Modal';\r\nimport ajax from '../utils/ajaxRequest';\r\nimport $ from 'jquery';\r\nimport {isMobile} from '../utils/mobileDetect';\r\nimport CookieHelper from \"../helpers/CookieHelper\";\r\n\r\nconst CONFIG = {\r\n listClass: 'ar-audience-selector__list',\r\n activeClass: 'ar-audience-selector__list__selected',\r\n countryListId: 'asCountryList',\r\n userTypeListId: 'asUserTypeList',\r\n submitId: 'asSubmit',\r\n submitEndpoint: '/api/setaudience',\r\n profilesEndpoint: '/api/audienceprofiles',\r\n cancelTop: 'asCancelTop',\r\n cancelBottom: 'asCancelBottom',\r\n};\r\n\r\nexport class AudienceSelector extends Modal {\r\n\r\n constructor(userLoggedIn) {\r\n super({\r\n width: 1100,\r\n displayHeader: false,\r\n backdropClose: false,\r\n scrollLock: true,\r\n focusTrap: true,\r\n });\r\n\r\n this.userLoggedIn = !!userLoggedIn;\r\n this.activeCountry = undefined;\r\n this.activeUserType = undefined;\r\n this.$form = undefined;\r\n\r\n this.countryTplData = {};\r\n this.userTplData = {};\r\n\r\n this.template = _.template(document.querySelector('#asMainTpl').innerText);\r\n\r\n this.confirmationTpl = _.template(document.querySelector('#asConfirmationTpl').innerText);\r\n\r\n this.listTplDesktop = _.template(`\r\n <%= label %>\r\n \r\n `);\r\n\r\n this.listTplMobile = _.template(`\r\n <%= label %>\r\n
\r\n \r\n
\r\n `);\r\n }\r\n\r\n /**\r\n * Initialise this class\r\n */\r\n \r\n init() {\r\n super.init();\r\n ajax.get(CONFIG.profilesEndpoint).then((data) => {\r\n this.countryTplData = {'items': data.countries, 'label': 'I am based in ...'};\r\n this.userTplData = {'items': data.userTypes, 'label': 'I am a ...'};\r\n\r\n const countryList = (isMobile) ? this.listTplMobile(this.countryTplData) : this.listTplDesktop(this.countryTplData);\r\n this.template = this.template({'countryList': countryList});\r\n this.openSelector();\r\n\r\n this.$form = document.querySelector('form.ar-audience-selector');\r\n\r\n document.getElementById('targetUrl').setAttribute('value', location.pathname + location.search + location.hash);\r\n let userCountryType;\r\n let userInvestorType;\r\n // default option selection\r\n if (data.defaultUserData && data.defaultUserData.country && data.defaultUserData.investorType) {\r\n userCountryType = data.defaultUserData.country;\r\n userInvestorType = data.defaultUserData.investorType;\r\n } else { // In case no data from the server returned - use cookie.\r\n const cookieUserData = CookieHelper.getCookie();\r\n if(cookieUserData.artweb_country && cookieUserData.artweb_investorType) {\r\n userCountryType = cookieUserData.artweb_country;\r\n userInvestorType = cookieUserData.artweb_investorType;\r\n }\r\n }\r\n\r\n if(userCountryType && userInvestorType && data.userTypes && data.countries) {\r\n const countryIndex = this.findIndexByAttr(data.countries, 'code', userCountryType);\r\n const userIndex = this.findIndexByAttr(data.userTypes, 'code', userInvestorType);\r\n const userId = data.userTypes[userIndex].id;\r\n\r\n this.setActiveCountry(countryIndex, true);\r\n this.setActiveUserType(userId, true);\r\n }\r\n \r\n this.showConfirmation();\r\n })\r\n }\r\n \r\n /** \r\n * Display the selector window (Modal)\r\n */\r\n openSelector() {\r\n this.setContent(this.template);\r\n this.show()\r\n }\r\n\r\n setActiveCountry(e, isInt) {\r\n if (!isInt && e.type && e.type === 'keypress' && e.which !== 13) {\r\n return;\r\n }\r\n const elementId = isInt ? e : e.target.getAttribute('data-item') || e.target.selectedOptions[0].value;\r\n this.activeCountry = this.countryTplData.items[+elementId];\r\n this.activeUserType = undefined;\r\n\r\n const userTypes = { 'items': this.permittedUserTypes(), 'label': 'I am a ...' }; \r\n const userTypeMarkup = (isMobile) ? this.listTplMobile(userTypes) : this.listTplDesktop(userTypes);\r\n const newFormAction = (location.protocol + '//' + this.activeCountry.hostName + CONFIG.submitEndpoint);\r\n\r\n if(isMobile) {\r\n document.querySelector('#' + CONFIG.countryListId + ' select').value = elementId;\r\n } else {\r\n this.removeActiveState('#' + CONFIG.countryListId);\r\n var selectedElement = document.querySelector('#' + CONFIG.countryListId + ' li[data-item=\"' + elementId + '\"]');\r\n selectedElement.classList.add(CONFIG.activeClass);\r\n selectedElement.setAttribute('aria-current', 'true');\r\n }\r\n\r\n this.$form.setAttribute('action', newFormAction);\r\n \r\n document.getElementById('country').setAttribute('value', this.activeCountry.code);\r\n var userTypeElement = document.getElementById(CONFIG.userTypeListId)\r\n userTypeElement.innerHTML = userTypeMarkup;\r\n if(!isInt && e.type && e.type === \"keypress\" ){\r\n userTypeElement.querySelector('[tabindex=\"0\"]').focus();\r\n }\r\n document.getElementById('asConfirmation').innerHTML = '';\r\n }\r\n\r\n setActiveUserType(e, isId) {\r\n if (!isId && e.type && e.type === 'keypress' && e.which !== 13) {\r\n return;\r\n }\r\n\r\n const elementId = isId ? e : e.target.getAttribute('data-item') || e.target.selectedOptions[0].value;\r\n this.activeUserType = this.userTplData.items.filter((val) => { return val.id === parseInt(elementId)})[0];\r\n\r\n if(isMobile) {\r\n document.querySelector('#' + CONFIG.userTypeListId + ' select').value = elementId;\r\n } else {\r\n this.removeActiveState('#' + CONFIG.userTypeListId);\r\n var selectedElement = document.querySelector('#' + CONFIG.userTypeListId + ' li[data-item=\"' + elementId + '\"]');\r\n selectedElement.classList.add(CONFIG.activeClass);\r\n selectedElement.setAttribute('aria-current', 'true');\r\n }\r\n\r\n document.getElementById('investorType').setAttribute('value', this.activeUserType.code);\r\n\r\n this.showConfirmation();\r\n if(!isId && e.type === \"keypress\" ){\r\n document.getElementById(CONFIG.submitId).focus();\r\n }\r\n }\r\n\r\n /**\r\n * Unset activeItem property and remove active class\r\n * @private\r\n */\r\n removeActiveState(parent) {\r\n const activeElements = document.querySelector(parent + ' .' + CONFIG.activeClass);\r\n\r\n if(activeElements) {\r\n activeElements.classList.remove(CONFIG.activeClass);\r\n activeElements.removeAttribute('aria-current');\r\n }\r\n }\r\n\r\n /**\r\n * Display the confirmation content\r\n * @private\r\n */\r\n showConfirmation() {\r\n if (!this.activeUserType || !this.activeCountry) return;\r\n const confirmationTplData = {\r\n 'usertype': this.activeUserType.title,\r\n 'userId' : this.activeUserType.id,\r\n 'country': this.activeCountry.title,\r\n 'showdisclaimer': this.activeUserType.code.toLowerCase() === 'pvi',\r\n 'audienceSelectorDefinition': this.activeCountry.userTypeDefinitions\r\n };\r\n\r\n document.getElementById('asConfirmation').innerHTML = this.confirmationTpl(confirmationTplData);\r\n }\r\n\r\n /**\r\n * Generate user types array depending on selected country - progressive selection\r\n * @private\r\n */\r\n permittedUserTypes() {\r\n return this.userTplData.items.filter((val) => this.activeCountry.userTypes.indexOf(val.id) > -1);\r\n }\r\n\r\n findIndexByAttr(arr, atr, val) {\r\n for(var i = 0; i < arr.length; i++) {\r\n if(arr[i][atr] === val) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n initEventListeners() {\r\n super.initEventListeners();\r\n\r\n if (isMobile) {\r\n $('body')\r\n .on('change', '#' + CONFIG.countryListId + ' select', this.setActiveCountry.bind(this))\r\n .on('change', '#' + CONFIG.userTypeListId + ' select', this.setActiveUserType.bind(this));\r\n }\r\n\r\n if (!isMobile) {\r\n $('body')\r\n .on('click keypress', '#' + CONFIG.countryListId + ' li', this.setActiveCountry.bind(this))\r\n .on('click keypress', '#' + CONFIG.userTypeListId + ' li', this.setActiveUserType.bind(this));\r\n }\r\n }\r\n\r\n // Override method to block `Modal` event listeners. User can only close window on specific interactions.\r\n initCloseEventListeners() {\r\n if (!this.userLoggedIn) return;\r\n\r\n var closeWindow = function() {\r\n let url = window.location.href;\r\n if (url.endsWith(\"#\")) {\r\n url = url.slice(0, -1);\r\n }\r\n window.location.assign(url);\r\n };\r\n\r\n $(document)\r\n .on('click', '#' + CONFIG.cancelTop, closeWindow)\r\n .on('click', '#' + CONFIG.cancelBottom, closeWindow)\r\n .on('keyup', (e) => {\r\n if (e.key === 'Escape') closeWindow();\r\n });\r\n }\r\n}\r\n\r\nvar instance;\r\n\r\nexport var show = () => instance || (instance = new AudienceSelector(window.userLoggedIn).init());"],"mappings":"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"}