{"version":3,"file":"GtmDataLayerController.js","names":["GtmDataLayerController","setFlagThatGtmControllerIsInPlace","addEventListeners","onPageLoad","window","gtmControllerDeployed","$","document","on","onGenericClick","bind","onGlobalSearch","onLoginFormSubmit","onRegistrationFormSubmit","onRegistrationFormButtonClick","onDocumentSearch","onGlossaryFormSubmit","onGenericFormSubmit","onPrintClick","onFundFollow","onFundSearchClear","onArticleSearchClear","onGlobalSearchClear","onGlobalSearchFacet","onLinkAliasClick","event","element","currentTarget","tagName","toLowerCase","getAttribute","href","elementAsObject","getGtmElementLinkProperties","dataLayerPush","err","console","error","eventObject","object","dataLayer","push","data","formattedData","replaceAll","JSON","parse","pageView","link","host","location","searchTerm","searchType","filterAssetClass","filterRegion","filterFund","filterFundRange","filterFundType","filterFocus","filterCurrency","filterPagetype","filterDocumenttype","eventObj","Object","eventName","search_term","search_type","filter_asset_class","filter_region","filter_fund","filter_fund_range","filter_fund_type","filter_focus","filter_currency","filter_pagetype","filter_documenttype","form","pageType","getParamFromUrl","action","term","find","val","onSearchSubmit","atag","url","assetClass","region","fund","fundRanges","fundRegions","focuses","assetClasses","currencies","fundTypes","activeFilters","termValue","getValuesFromActiveFilters","text","documentType","filterName","values","reduce","acc","cur","active","filter","value","length","join","paramName","paramArr","slice","indexOf","paramValue","urlParams","URLSearchParams","paramValues","getAll","defaults","widget_format","className","widget_type","link_id","id","link_classes","gtmAttributes","dataset","assign","parseGtmAttributes","linkUrl","link_url","baseURI","URL","body","link_domain","hostname","outbound","isExternalLink","toString","innerText","link_text","trim","formElement","parentElement","formSubmitText","onFormSubmit","getSubmitText","formName","formId","destination","widgetType","form_name","form_id","form_destination","form_submit_text","formSubmitButton","button","attr","pathname","linkAliasHref","isMac","navigator","platform","toUpperCase","hasNewTabModifier","metaKey","ctrlKey","hasNewWindowModifier","altKey","shiftKey","open","outerWidth","outerHeight","preventDefault","PageController","start","render","gtm","init"],"sources":["controllers/GtmDataLayerController.js"],"sourcesContent":["import $ from 'jquery';\r\nimport {PageController} from \"./PageController\";\r\n\r\nexport class GtmDataLayerController extends PageController {\r\n\r\n constructor() {\r\n super();\r\n };\r\n\r\n init() {\r\n this.setFlagThatGtmControllerIsInPlace();\r\n this.addEventListeners();\r\n this.onPageLoad();\r\n };\r\n\r\n setFlagThatGtmControllerIsInPlace() {\r\n window.gtmControllerDeployed = true;\r\n };\r\n\r\n addEventListeners() {\r\n $(document).on('click', 'a[href]:not([data-gtm-method]), [data-gtm-attributes]:not([data-gtm-method], [data-link-alias-href])', this.onGenericClick.bind(this));\r\n\r\n // forms\r\n $(document).on('submit', 'form[data-gtm-method=\"onGlobalSearch\"]', this.onGlobalSearch.bind(this)); \r\n $(document).on('submit', 'form[data-gtm-method=\"onLoginFormSubmit\"]', this.onLoginFormSubmit.bind(this)); \r\n $(document).on('submit', 'form[data-gtm-method=\"onRegistrationFormSubmit\"]', this.onRegistrationFormSubmit.bind(this)); \r\n $('button[data-gtm-method=\"onRegistrationFormButtonClick\"]').on('click', this.onRegistrationFormButtonClick.bind(this));\r\n\r\n $(document).on('submit', 'form[data-gtm-method=\"onDocumentSearch\"]', this.onDocumentSearch.bind(this));\r\n $(document).on('submit', 'form[data-gtm-method=\"onGlossaryFormSubmit\"]', this.onGlossaryFormSubmit.bind(this));\r\n $(document).on('submit', 'form:not([data-gtm-method])', this.onGenericFormSubmit.bind(this));\r\n\r\n // custom handlers\r\n $(document).on('click', '[data-gtm-method=\"onPrintClick\"]', this.onPrintClick.bind(this));\r\n $(document).on('click', '[data-gtm-method=\"onFundFollow\"]', this.onFundFollow.bind(this));\r\n $(document).on('click', '[data-gtm-method=\"onFundSearchClear\"]', this.onFundSearchClear.bind(this));\r\n $(document).on('click', '[data-gtm-method=\"onArticleSearchClear\"]', this.onArticleSearchClear.bind(this));\r\n $(document).on('click', '[data-gtm-method=\"onGlobalSearchClear\"]', this.onGlobalSearchClear.bind(this));\r\n $(document).on('click', '[data-gtm-method=\"onGlobalSearchFacet\"]', this.onGlobalSearchFacet.bind(this));\r\n\r\n $(document).on('click', '[data-link-alias-href]', this.onLinkAliasClick.bind(this));\r\n };\r\n\r\n onGenericClick(event) {\r\n try {\r\n const element = event.currentTarget;\r\n\r\n if (!element) return;\r\n \r\n if (element.tagName.toLowerCase() !== 'a' && element.tagName.toLowerCase() !== 'button' && !element.getAttribute('data-gtm-attributes')) {\r\n return;\r\n }\r\n\r\n const href = element.getAttribute('href');\r\n if (href === '#' || href === '') { // Elements without href attribute pass through as `null`\r\n return;\r\n }\r\n \r\n const elementAsObject = this.getGtmElementLinkProperties(element);\r\n this.dataLayerPush(elementAsObject);\r\n } catch (err) {\r\n console.error(`GTM event handler error`, err);\r\n }\r\n };\r\n\r\n onPrintClick(element) {\r\n if (element.currentTarget) {\r\n const eventObject = this.getGtmElementLinkProperties(element.currentTarget);\r\n this.dataLayerPush(eventObject);\r\n }\r\n }\r\n\r\n dataLayerPush(object) {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(object);\r\n };\r\n\r\n parseGtmAttributes(data) {\r\n let formattedData = data ? data.replaceAll('|', '\"') : '';\r\n formattedData = `{${formattedData}}`;\r\n return JSON.parse(formattedData);\r\n };\r\n\r\n onPageLoad() {\r\n if (window.pageView) {\r\n this.dataLayerPush(window.pageView);\r\n }\r\n }\r\n\r\n isExternalLink(link) {\r\n return (link.host !== window.location.host);\r\n }\r\n\r\n onSearchSubmit(searchTerm, searchType, filterAssetClass, filterRegion, filterFund, filterFundRange, filterFundType, filterFocus, filterCurrency, filterPagetype, filterDocumenttype) {\r\n eventObj = new Object();\r\n eventObj.event = 'search_action';\r\n eventObj.eventName = 'search';\r\n eventObj.search_term = searchTerm ? searchTerm : null;\r\n eventObj.search_type = searchType ? searchType : null;\r\n eventObj.filter_asset_class = filterAssetClass ? filterAssetClass : null;\r\n eventObj.filter_region = filterRegion ? filterRegion : null;\r\n eventObj.filter_fund = filterFund ? filterFund : null;\r\n eventObj.filter_fund_range = filterFundRange ? filterFundRange : null;\r\n eventObj.filter_fund_type = filterFundType ? filterFundType : null;\r\n eventObj.filter_focus = filterFocus ? filterFocus : null;\r\n eventObj.filter_currency = filterCurrency ? filterCurrency : null;\r\n eventObj.filter_pagetype = filterPagetype ? filterPagetype : null;\r\n eventObj.filter_documenttype = filterDocumenttype ? filterDocumenttype : null;\r\n this.dataLayerPush(eventObj);\r\n }\r\n\r\n onGlobalSearch(element) {\r\n let form = element.currentTarget;\r\n var pageType = this.getParamFromUrl(form.action, 'pageType');\r\n var term = $(form).find('input[name=\"q\"]').val();\r\n if (term) {\r\n term = term.toLowerCase();\r\n }\r\n this.onSearchSubmit(term, 'sitewide', null, null, null, null, null, null, null, pageType, null);\r\n };\r\n\r\n onGlobalSearchFacet(element) {\r\n let atag = element.currentTarget;\r\n var pageType = this.getParamFromUrl(atag.href, 'pageType');\r\n var term = this.getParamFromUrl(atag.href, 'q');\r\n this.onSearchSubmit(term, 'sitewide', null, null, null, null, null, null, null, pageType, null);\r\n };\r\n\r\n onGlobalSearchClear() {\r\n this.onSearchSubmit(null, 'sitewide', null, null, null, null, null, null, null, null, null);\r\n };\r\n\r\n onArticleSearch(url) {\r\n var term = this.getParamFromUrl(url, 'q');\r\n var assetClass = this.getParamFromUrl(url, 'assetclass');\r\n var region = this.getParamFromUrl(url, 'region');\r\n var fund = this.getParamFromUrl(url, 'fund');\r\n this.onSearchSubmit(term, 'insights', assetClass, region, fund, null, null, null, null, null, null);\r\n };\r\n\r\n onArticleSearchClear() {\r\n this.onSearchSubmit(null, 'insights', null, null, null, null, null, null, null, null, null);\r\n };\r\n\r\n onFundSearchBar(url) {\r\n var term = this.getParamFromUrl(url, 'q');\r\n var fundRanges = this.getParamFromUrl(url, 'ac');\r\n var fundRegions = this.getParamFromUrl(url, 'r');\r\n var focuses = this.getParamFromUrl(url, 'f');\r\n var assetClasses = this.getParamFromUrl(url, 'sc');\r\n var currencies = this.getParamFromUrl(url, 'c');\r\n var fundTypes = this.getParamFromUrl(url, 'ft');\r\n this.onSearchSubmit(term, 'funds', assetClasses, fundRegions, null, fundRanges, fundTypes, focuses, currencies, null, null);\r\n };\r\n\r\n onFundSearch(term, activeFilters) {\r\n var termValue = null;\r\n if (term) {\r\n termValue = term.toLowerCase();\r\n }\r\n\r\n const fundRanges = this.getValuesFromActiveFilters(activeFilters, 'AssetClass');\r\n const fundRegions = this.getValuesFromActiveFilters(activeFilters, 'Region');\r\n const focuses = this.getValuesFromActiveFilters(activeFilters, 'Focus');\r\n const assetClasses = this.getValuesFromActiveFilters(activeFilters, 'ShortClassName');\r\n const currencies = this.getValuesFromActiveFilters(activeFilters, 'Currency');\r\n const fundTypes = this.getValuesFromActiveFilters(activeFilters, 'FundType');\r\n this.onSearchSubmit(termValue, 'funds', assetClasses, fundRegions, null, fundRanges, fundTypes, focuses, currencies, null, null);\r\n };\r\n\r\n onFundSearchClear() {\r\n this.onSearchSubmit(null, 'funds', null, null, null, null, null, null, null, null, null);\r\n };\r\n\r\n onDocumentSearch(element) {\r\n let form = element.currentTarget;\r\n var fund = $(form).find('select[name=\"fundId\"] option:selected').text();\r\n if (fund) {\r\n fund = fund.toLowerCase();\r\n }\r\n else {\r\n fund = null;\r\n }\r\n var documentType = $(form).find('select[name=\"documentType\"]').val();\r\n if (documentType) {\r\n documentType = documentType.toLowerCase();\r\n }\r\n else {\r\n documentType = null;\r\n }\r\n\r\n this.onSearchSubmit(null, 'documents', null, null, fund, null, null, null, null, null, documentType);\r\n };\r\n\r\n getValuesFromActiveFilters(activeFilters, filterName) {\r\n var values = activeFilters.reduce((acc, cur) => ((cur.active && cur.filter == filterName && acc.push(cur.value)), acc), []);\r\n if (values && values.length > 0) {\r\n return values.join('|').toLowerCase();\r\n }\r\n return null;\r\n }\r\n\r\n getParamFromUrl(url, paramName) {\r\n var paramArr = url.slice(url.indexOf('?') + 1);\r\n var paramValue = null;\r\n if (paramArr) {\r\n var urlParams = new URLSearchParams(paramArr);\r\n var paramValues = urlParams.getAll(paramName);\r\n if (paramValues) {\r\n paramValue = paramValues.join('|').toLowerCase();\r\n }\r\n }\r\n return paramValue;\r\n }\r\n\r\n getGtmElementLinkProperties(element, defaults) {\r\n const eventObject = {\r\n // Defaults\r\n event: 'link_click',\r\n eventName: 'click',\r\n widget_format: element.className && element.className.indexOf('button') >= 0 ? 'button' : 'text',\r\n widget_type: 'page_content',\r\n link_id: element.id ? element.id.toLowerCase() : null,\r\n link_classes: element.className ? element.className.toLowerCase() : null,\r\n ...defaults\r\n };\r\n\r\n const gtmAttributes = element.dataset?.gtmAttributes;\r\n if (gtmAttributes) {\r\n Object.assign(eventObject, this.parseGtmAttributes(gtmAttributes));\r\n }\r\n\r\n const linkUrl = eventObject.link_url ? eventObject.link_url : element.href ? element.href : element.baseURI;\r\n let url;\r\n try {\r\n url = new URL(linkUrl, document.body.baseURI);\r\n } catch {\r\n url = { href: eventObject.link_url };\r\n }\r\n\r\n eventObject.link_url = url.href ? url.href.toLowerCase() : null;\r\n eventObject.link_domain = url.hostname ? url.hostname.toLowerCase() : null;\r\n eventObject.outbound = this.isExternalLink(url).toString();\r\n\r\n const innerText = (eventObject.link_text || element.innerText || '').trim();\r\n eventObject.link_text = innerText ? innerText.toLowerCase() : null;\r\n\r\n return eventObject; \r\n }\r\n\r\n onRegistrationFormButtonClick(element) { \r\n var formElement = element.currentTarget.parentElement;\r\n var formSubmitText = $(element.currentTarget).text() ? $(element.currentTarget).text().toLowerCase() : null;\r\n if (formElement) {\r\n this.onFormSubmit('register', 'registration form', formElement.id.toLowerCase(), formElement.action.toLowerCase(), formSubmitText, 'registration form');\r\n }\r\n }\r\n\r\n onRegistrationFormSubmit(element) {\r\n this.onFormSubmit('register', 'registration form', element.id.toLowerCase(), element.action.toLowerCase(), this.getSubmitText(element.currentTarget), 'registration form');\r\n }\r\n\r\n onLoginFormSubmit(element) {\r\n this.onFormSubmit('login', 'login form', element.currentTarget.id.toLowerCase(), element.currentTarget.action.toLowerCase(), this.getSubmitText(element.currentTarget), 'login form');\r\n }\r\n\r\n onGenericFormSubmit(element) {\r\n if (element.currentTarget.id) {\r\n this.onFormSubmit('form_submit', 'other', element.currentTarget.id.toLowerCase(), element.currentTarget.action.toLowerCase(), this.getSubmitText(element.currentTarget), 'page_content')\r\n }\r\n }\r\n\r\n onGlossaryFormSubmit(element) {\r\n if (element.currentTarget.id) {\r\n this.onFormSubmit('form_submit', 'other', element.currentTarget.id.toLowerCase(), element.currentTarget.action.toLowerCase(), element.currentTarget[0].value, 'page_content')\r\n }\r\n }\r\n\r\n onFormSubmit(eventName, formName, formId, destination, formSubmitText, widgetType) {\r\n eventObj = new Object();\r\n eventObj.event = 'form_submit';\r\n eventObj.eventName = eventName;\r\n eventObj.form_name = formName;\r\n eventObj.form_id = formId;\r\n eventObj.form_destination = destination;\r\n eventObj.form_submit_text = formSubmitText;\r\n eventObj.widget_format = 'form';\r\n eventObj.widget_type = widgetType;\r\n this.dataLayerPush(eventObj);\r\n }\r\n\r\n getSubmitText(form) {\r\n var formSubmitText = null;\r\n var formSubmitButton = $(form).find('button[type=\"submit\"]');\r\n if (formSubmitButton && formSubmitButton.text()) {\r\n formSubmitText = formSubmitButton.text().toLowerCase();\r\n }\r\n return formSubmitText;\r\n }\r\n\r\n onFundFollow(event) {\r\n const button = $(event.currentTarget);\r\n const eventObj = {\r\n event: 'link_click',\r\n eventName: 'follow_fund',\r\n link_classes: button.attr('class') ? button.attr('class').toLowerCase() : null,\r\n link_domain: window.location.host,\r\n link_id: button.id ? button.id.toLowerCase() : null,\r\n link_url: window.location.pathname,\r\n link_text: button ? button.text().toLowerCase() : null,\r\n outbound: \"false\",\r\n widget_format: 'button',\r\n widget_type: 'fund explorer'\r\n }\r\n this.dataLayerPush(eventObj);\r\n }\r\n\r\n onLinkAliasClick(event) {\r\n const element = event.currentTarget;\r\n const url = element.dataset.linkAliasHref;\r\n if (!url) return;\r\n\r\n try {\r\n const eventObject = this.getGtmElementLinkProperties(element, { link_url: url });\r\n this.dataLayerPush(eventObject);\r\n } catch (err) {\r\n console.error(`GTM event handler error`, err);\r\n }\r\n\r\n const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\r\n const hasNewTabModifier = isMac ? event.metaKey : event.ctrlKey;\r\n const hasNewWindowModifier = isMac ? event.altKey : event.shiftKey;\r\n \r\n if (hasNewTabModifier) {\r\n window.open(url, '_blank', 'noopener,noreferrer');\r\n } else if (hasNewWindowModifier) {\r\n window.open(url, '_blank', `noopener,noreferrer,width=${window.outerWidth},height=${window.outerHeight},location=yes,menubar=yes,scrollbars=yes,status=yes`);\r\n } else {\r\n window.location = url;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n}\r\n\r\nGtmDataLayerController.start = function () {\r\n return new GtmDataLayerController();\r\n};\r\n\r\nexport var render = function () {\r\n var gtm = new GtmDataLayerController();\r\n gtm.init();\r\n return gtm;\r\n};\r\n"],"mappings":"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"}