1/** 2 * @file 3 * Defines Javascript behaviors for the etracker module. 4 */ 5(function (drupalSettings) { 6 // Register event listener only if any setting is enabled. 7 if ( 8 drupalSettings.etracker.track_mailto || 9 drupalSettings.etracker.track_download || 10 drupalSettings.etracker.track_external 11 ) { 12 // Attach mousedown, keyup, touchstart events to document only 13 ['mousedown', 'keyup', 'touchstart'].forEach(function (e) { 14 document.querySelector('body').addEventListener(e, function (event) { 15 if (event.target.tagName === 'A' || event.target.tagName === 'AREA') { 16 // Mailto link clicked. 17 if ( 18 drupalSettings.etracker.track_mailto && 19 event.target.href.startsWith('mailto:') 20 ) { 21 _etracker.sendEvent( 22 new et_ClickEvent( 23 (`E-Mail:%20${event.target.href.substring(7)}`, 'E-Mail'), 24 ), 25 ); 26 } 27 // Download link clicked. 28 else if ( 29 drupalSettings.etracker.track_download && 30 new RegExp( 31 `\\.(${drupalSettings.etracker.track_download_extensions 32 .split(' ') 33 .join('|')})(\\?|$)`, 34 ).test(event.target.href) 35 ) { 36 _etracker.sendEvent( 37 new et_UserDefinedEvent(event.target.href, 'Download'), 38 ); 39 } 40 // External link clicked. 41 else if ( 42 drupalSettings.etracker.track_external && 43 event.target.host !== window.location.host 44 ) { 45 _etracker.sendEvent( 46 new et_UserDefinedEvent( 47 `External link:%20${event.target.href}`, 48 '', 49 ), 50 ); 51 } 52 } 53 }); 54 }); 55 } 56 57 // Trigger events for each message being displayed. 58 if (drupalSettings.etracker.messages.length > 0) { 59 drupalSettings.etracker.messages.forEach(function (message) { 60 const clickEvent = new et_UserDefinedEvent( 61 message.text, 62 'Message', 63 message.type, 64 '', 65 ); 66 _etracker.sendEvent(clickEvent); 67 }); 68 } 69})(drupalSettings);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.