1/** 2 * @file 3 * Contains user_agent_check.js. 4 */ 5 6(function ($, Drupal, drupalSettings) { 7 'use strict'; 8 Drupal.behaviors.userAgentClassBehavior = { 9 attach: function () { 10 var userAgentText = navigator.userAgent; 11 var listDevicesAndBrowsers = drupalSettings.user_agent_class.ListDevicesAndBrowsers; 12 var listDevices = Object.keys(listDevicesAndBrowsers[0].device_entity).map(function (e) { 13 return listDevicesAndBrowsers[0].device_entity[e]; 14 }); 15 var listBrowsers = Object.keys(listDevicesAndBrowsers[1].user_agent_entity).map(function (e) { 16 return listDevicesAndBrowsers[1].user_agent_entity[e]; 17 }); 18 var methodProvideBoolean = drupalSettings.user_agent_class.methodProvide; 19 if (methodProvideBoolean === '0' || methodProvideBoolean === 0) { 20 var classes = []; 21 var item = ''; 22 for (item in listBrowsers) { 23 if (listBrowsers[item].exclude.length > 0 24 && userAgentText.search(listBrowsers[item].exclude) >= 0 25 && userAgentText.search(listBrowsers[item].trigger) >= 0) { 26 continue; 27 } 28 else if (userAgentText.search(listBrowsers[item].trigger) >= 0) { 29 classes.push(listBrowsers[item].className); 30 break; 31 } 32 } 33 34 for (item in listDevices) { 35 if (listDevices[item].exclude.length > 0 36 && userAgentText.search(listDevices[item].exclude) >= 0 37 && userAgentText.search(listDevices[item].trigger) >= 0) { 38 continue; 39 } 40 else if (userAgentText.search(listDevices[item].trigger) >= 0) { 41 classes.push(listDevices[item].className); 42 break; 43 } 44 } 45 var classesInBody = classes.join(' ');
46 $('body').addClass(classesInBody); 47 } 48 } 49 }; 50})(jQuery, Drupal, 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.