1/** 2* DO NOT EDIT THIS FILE. 3* See the following change record for more information, 4* https://www.drupal.org/node/2815083 5* @preserve 6**/ 7(function ($, Drupal, debounce) { 8 $.fn.drupalGetSummary = function () { 9 var callback = this.data('summaryCallback'); 10 return this[0] && callback ? callback(this[0]).trim() : ''; 11 }; 12 $.fn.drupalSetSummary = function (callback) { 13 var self = this; 14 if (typeof callback !== 'function') { 15 var val = callback; 16 callback = function callback() { 17 return val; 18 }; 19 } 20 return this.data('summaryCallback', callback).off('formUpdated.summary').on('formUpdated.summary', function () { 21 self.trigger('summaryUpdated'); 22 }).trigger('summaryUpdated'); 23 }; 24 Drupal.behaviors.formSingleSubmit = { 25 attach: function attach() { 26 function onFormSubmit(e) { 27 var $form = $(e.currentTarget); 28 var formValues = $form.serialize(); 29 var previousValues = $form.attr('data-drupal-form-submit-last'); 30 if (previousValues === formValues) { 31 e.preventDefault(); 32 } else { 33 $form.attr('data-drupal-form-submit-last', formValues); 34 } 35 } 36 $(once('form-single-submit', 'body')).on('submit.singleSubmit', 'form:not([method~="GET"])', onFormSubmit); 37 } 38 }; 39 function triggerFormUpdated(element) { 40 $(element).trigger('formUpdated'); 41 } 42 function fieldsList(form) { 43 return [].map.call(form.querySelectorAll('[name][id]'), function (el) { 44 return el.id; 45 }); 46 } 47 Drupal.behaviors.formUpdated = { 48 attach: function attach(context) { 49 var $context = $(context); 50 var contextIsForm = $context.is('form'); 51 var $forms = $(once('form-updated', contextIsForm ? $context : $context.find('form'))); 52 var formFields; 53 if ($forms.length) { 54 $.makeArray($forms).forEach(function (form) { 55 var events = 'change.formUpdated input.formUpdated '; 56 var eventHandler = debounce(function (event) { 57 triggerFormUpdated(event.target); 58 }, 300); 59 formFields = fieldsList(form).join(','); 60 form.setAttribute('data-drupal-form-fields', formFields); 61 $(form).on(events, eventHandler); 62 }); 63 } 64 if (contextIsForm) { 65 formFields = fieldsList(context).join(','); 66 var currentFields = $(context).attr('data-drupal-form-fields'); 67 if (formFields !== currentFields) { 68 triggerFormUpdated(context); 69 } 70 } 71 }, 72 detach: function detach(context, settings, trigger) { 73 var $context = $(context); 74 var contextIsForm = $context.is('form'); 75 if (trigger === 'unload') { 76 once.remove('form-updated', contextIsForm ? $context : $context.find('form')).forEac
76h(function (form) { 77 form.removeAttribute('data-drupal-form-fields'); 78 $(form).off('.formUpdated'); 79 }); 80 } 81 } 82 }; 83 Drupal.behaviors.fillUserInfoFromBrowser = { 84 attach: function attach(context, settings) { 85 var userInfo = ['name', 'mail', 'homepage']; 86 var $forms = $(once('user-info-from-browser', '[data-user-info-from-browser]')); 87 if ($forms.length) { 88 userInfo.forEach(function (info) { 89 var $element = $forms.find("[name=".concat(info, "]")); 90 var browserData = localStorage.getItem("Drupal.visitor.".concat(info)); 91 if (!$element.length) { 92 return; 93 } 94 var emptyValue = $element[0].value === ''; 95 var defaultValue = $element.attr('data-drupal-default-value') === $element[0].value; 96 if (browserData && (emptyValue || defaultValue)) { 97 $element.each(function (index, item) { 98 item.value = browserData; 99 }); 100 } 101 }); 102 } 103 $forms.on('submit', function () { 104 userInfo.forEach(function (info) { 105 var $element = $forms.find("[name=".concat(info, "]")); 106 if ($element.length) { 107 localStorage.setItem("Drupal.visitor.".concat(info), $element[0].value); 108 } 109 }); 110 }); 111 } 112 }; 113 var handleFragmentLinkClickOrHashChange = function handleFragmentLinkClickOrHashChange(e) { 114 var url; 115 if (e.type === 'click') { 116 url = e.currentTarget.location ? e.currentTarget.location : e.currentTarget; 117 } else { 118 url = window.location; 119 } 120 var hash = url.hash.substr(1); 121 if (hash) { 122 var $target = $("#".concat(hash)); 123 $('body').trigger('formFragmentLinkClickOrHashChange', [$target]); 124 setTimeout(function () { 125 return $target.trigger('focus'); 126 }, 300); 127 } 128 }; 129 var debouncedHandleFragmentLinkClickOrHashChange = debounce(handleFragmentLinkClickOrHashChange, 300, true); 130 $(window).on('hashchange.form-fragment', debouncedHandleFragmentLinkClickOrHashChange); 131 $(document).on('click.form-fragment', 'a[href*="#"]', debouncedHandleFragmentLinkClickOrHashChange); 132})(jQuery, Drupal, Drupal.debounce);
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.