PageSourceSearch

https://www.massteacher.org/sites/mta/files/js/js_JLjzpqtQKHFq7rFW…HABy9-JKqUCcz2vzD-Z0tNw-mFd5uW9cA4n4BITGX6Q

js massteacher.org collected 2026-09-24 09:35:41 UTC 10,965 bytes, 13 lines download raw bytes

1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
2(function($){'use strict';let engineKey=window.drupalSettings.engineKey;Drupal.behaviors.headerSearchAutocomplete={url:'https://search-api.swiftype.com/api/v1/public/engines/suggest?engine_key='+engineKey,headers:{'Content-Type':'application/json;charset=UTF-8','Access-Control-Allow-Origin':'*','Accept':'application/json'},data:{'per_page':'5','page':'1','filters':{'page':{'is_ra_event_resource':["!1"],'type':["!bill","!letter","!business_item"]}}},attach:function(context,settings){if(context===document){$('#header-search').on('keyup',function(e){let $container=$(e.target).parents('form').parent('div');let $form=$(e.target).parents('form');let term=$(this).val();$form.submit(function(e){e.preventDefault();if(term!=='')window.location.href='/search?q='+term;});if(term!=='')setTimeout(function(){Drupal.behaviors.headerSearchAutocomplete.runSearch($container,term);},250,$container,term);else Drupal.behaviors.headerSearchAutocomplete.clearResults($container);});$('.header__search-close').on('click',function(e){let $container=$(e.target).closest('div');Drupal.behaviors.headerSearchAutocomplete.clearResults($container);$container.find('input[type="search"]').val('');});$('#header-search').on('search',function(e){let $container=$(e.target).closest('div');Drupal.behaviors.headerSearchAutocomplete.clearResults($container);$container.find('input[type="search"]').val('');});}},runSearch:function($container,term){this.data.q=term;$.ajax({url:this.url,headers:this.headers,data:this.data,success:function(data){Drupal.behaviors.headerSearchAutocomplete.updateResults($container,data,term);}});},clearResults:function($container){let $resultsContainer=$container.find('.autocomplete-results');$resultsContainer.hide();$resultsContainer.find('li').remove();},updateResults:function($container,data,term){Drupal.behaviors.headerSearchAutocomplete.clearResults($container);if(data.record_count>0){let $suggestions=$container.find('.autocomplete-results ul');$(data.records.page).each(function(i,e){let link;if(link=Drupal.behaviors.headerSearchAutocomplete.getLink(e))$suggestions.append(link);});Drupal.behaviors.headerSearchAutocomplete.updateSeeAll($container,term);$container.find('.autocomplete-results').show();}},getLink:function(record){let title=record.title;let url=record.url;const isLearnuponCourse=!!record.is_learnupon_course;if(isLearnuponCourse&&record.link)url=record.link;return '<li class="autocomplete-results__list-item"><a href="'+url+'">'+title+'</a></li>';},updateSeeAll:function($container,term){let $seeAll=$container.find('.autocomplete-results__see-all');$seeAll.attr('href','/search/?q='+term);}};})(jQuery);;
3(($,Drupal)=>{Drupal.user={password:{css:{passwordParent:'password-parent',passwordsMatch:'ok',passwordsNotMatch:'error',passwordWeak:'is-weak',passwordFair:'is-fair',passwordGood:'is-good',passwordStrong:'is-strong',widgetInitial:'',passwordEmpty:'',passwordFilled:'',confirmEmpty:'',confirmFilled:''}}};Drupal.behaviors.password={attach(context,settings){const cssClasses=Drupal.user.password.css;once('password','input.js-password-field',context).forEach((value)=>{const $mainInput=$(value);const $mainInputParent=$mainInput.parent().addClass(cssClasses.passwordParent);const $passwordWidget=$mainInput.closest('.js-form-type-password-confirm');const $confirmInput=$passwordWidget.find('input.js-password-confirm');const $passwordConfirmMessage=$(Drupal.theme('passwordConfirmMessage',settings.password));const $passwordMatchStatus=$passwordConfirmMessage.find('[data-drupal-selector="password-match-status-text"]').first();const $confirmInputParent=$confirmInput.parent().addClass('confirm-parent').append($passwordConfirmMessage);const passwordStrengthBarClassesToRemove=[cssClasses.passwordWeak||'',cssClasses.passwordFair||'',cssClasses.passwordGood||'',cssClasses.passwordStrong||''].join(' ').trim();const confirmTextWrapperClassesToRemove=[cssClasses.passwordsMatch||'',cssClasses.passwordsNotMatch||''].join(' ').trim();const widgetClassesToRemove=[cssClasses.widgetInitial||'',cssClasse
3s.passwordEmpty||'',cssClasses.passwordFilled||'',cssClasses.confirmEmpty||'',cssClasses.confirmFilled||''].join(' ').trim();const password={};if(settings.password.showStrengthIndicator){const $passwordStrength=$(Drupal.theme('passwordStrength',settings.password));password.$strengthBar=$passwordStrength.find('[data-drupal-selector="password-strength-indicator"]').first();password.$strengthTextWrapper=$passwordStrength.find('[data-drupal-selector="password-strength-text"]').first();password.$suggestions=$(Drupal.theme('passwordSuggestions',settings.password,[]));password.$suggestions.hide();$mainInputParent.append($passwordStrength);$confirmInputParent.after(password.$suggestions);}const addWidgetClasses=()=>{$passwordWidget.addClass($mainInput[0].value?cssClasses.passwordFilled:cssClasses.passwordEmpty).addClass($confirmInput[0].value?cssClasses.confirmFilled:cssClasses.confirmEmpty);};const passwordCheckMatch=(confirmInputVal)=>{const passwordsAreMatching=$mainInput[0].value===confirmInputVal;const confirmClass=passwordsAreMatching?cssClasses.passwordsMatch:cssClasses.passwordsNotMatch;const confirmMessage=passwordsAreMatching?settings.password.confirmSuccess:settings.password.confirmFailure;if(!$passwordMatchStatus.hasClass(confirmClass)||!$passwordMatchStatus.html()===confirmMessage){if(confirmTextWrapperClassesToRemove)$passwordMatchStatus.removeClass(confirmTextWrapperClassesToRemove);$passwordMatchStatus.html(confirmMessage).addClass(confirmClass);}};const passwordCheck=()=>{if(settings.password.showStrengthIndicator){const result=Drupal.evaluatePasswordStrength($mainInput[0].value,settings.password);const $currentPasswordSuggestions=$(Drupal.theme('passwordSuggestions',settings.password,result.messageTips));if(password.$suggestions.html()!==$currentPasswordSuggestions.html()){password.$suggestions.replaceWith($currentPasswordSuggestions);password.$suggestions=$currentPasswordSuggestions.toggle(result.strength!==100);}if(passwordStrengthBarClassesToRemove)password.$strengthBar.removeClass(passwordStrengthBarClassesToRemove);password.$strengthBar[0].style.width=`${result.strength}%`;password.$strengthBar.addClass(result.indicatorClass);password.$strengthTextWrapper.html(result.indicatorText);}if($confirmInput[0].value){passwordCheckMatch($confirmInput[0].value);$passwordConfirmMessage[0].style.visibility='visible';}else $passwordConfirmMessage[0].style.visibility='hidden';if(widgetClassesToRemove){$passwordWidget.removeClass(widgetClassesToRemove);addWidgetClasses();}};if(widgetClassesToRemove)addWidgetClasses();$mainInput.on('input',passwordCheck);$confirmInput.on('input',passwordCheck);});}};Drupal.evaluatePasswordStrength=(password,passwordSettings)=>{password=password.trim();let indicatorText;let indicatorClass;let weaknesses=0;let strength=100;let msg=[];const hasLowercase=/[a-z]/.test(password);const hasUppercase=/[A-Z]/.test(password);const hasNumbers=/[0-9]/.test(password);const hasPunctuation=/[^a-zA-Z0-9]/.test(password);const $usernameBox=$('input.username');const username=$usernameBox.length>0?$usernameBox[0].value:passwordSettings.username;if(password.length<12){msg.push(passwordSettings.tooShort);strength-=(12-password.length)*5+30;}if(!hasLowercase){msg.push(passwordSettings.addLowerCase);weaknesses+=1;}if(!hasUppercase){msg.push(passwordSettings.addUpperCase);weaknesses+=1;}if(!hasNumbers){msg.push(passwordSettings.addNumbers);weaknesses+=1;}if(!hasPunctuation){msg.push(passwordSettings.addPunctuation);weaknesses+=1;}switch(weaknesses){case 1:strength-=12.5;break;case 2:strength-=25;break;case 3:case 4:strength-=40;break;}if(password!==''&&password.toLowerCase()===username.toLowerCase()){msg.push(passwordSettings.sameAsUsername);strength=5;}const cssClasses=Drupal.user.password.css;if(strength<60){indicatorText=passwordSettings.weak;indicatorClass=cssClasses.passwordWeak;}else if(strength<70){indicatorText=passwordSettings.fair;indicatorClass=cssClasses.passwordFair;}else if(strength<80){indicatorText=passwordSettings.good;indicatorClass=cssClasses.passwordGood;}else{if(strength<=100){indicatorText=passwordSettings.strong;
3indicatorClass=cssClasses.passwordStrong;}}const messageTips=msg;msg=`${passwordSettings.hasWeaknesses}<ul><li>${msg.join('</li><li>')}</li></ul>`;return {strength,indicatorText,indicatorClass,messageTips};};})(jQuery,Drupal);;
4((Drupal)=>{Drupal.theme.passwordConfirmMessage=({confirmTitle})=>{const confirmTextWrapper='<span data-drupal-selector="password-match-status-text"></span>';return `<div aria-live="polite" aria-atomic="true" class="password-confirm-message" data-drupal-selector="password-confirm-message">${confirmTitle} ${confirmTextWrapper}</div>`;};Drupal.theme.passwordStrength=({strengthTitle})=>{const strengthIndicator='<div class="password-strength__indicator" data-drupal-selector="password-strength-indicator"></div>';const strengthText='<span class="password-strength__text" data-drupal-selector="password-strength-text"></span>';return `
5      <div class="password-strength">
6        <div class="password-strength__meter" data-drupal-selector="password-strength-meter">${strengthIndicator}</div>
7        <div aria-live="polite" aria-atomic="true" class="password-strength__title">${strengthTitle} ${strengthText}</div>
8      </div>
9    `;};Drupal.theme.passwordSuggestions=({hasWeaknesses},tips)=>`<div class="password-suggestions">${tips.length?`${hasWeaknesses}<ul><li>${tips.join('</li><li>')}</li></ul>`:''}</div>`;})(Drupal);;
10(function($,Drupal,drupalSettings,once){'use strict';Drupal.behaviors.pwd={attach(context){var span_classes_custom=drupalSettings.view_password.span_classes||'';var icon_exposed_custom=drupalSettings.view_password.icon_exposed||'';var icon_hidden_custom=drupalSettings.view_password.icon_hidden||'';$(once('view_password_button','.pwd-see [type=password]',context)).after(`<button type="button" class="shwpd ${span_classes_custom} eye-close"
11            aria-label="${drupalSettings.view_password.showPasswordLabel}"
12          >
13          </button>`);if(icon_hidden_custom!=='')$(once('view_password_icon_button','.eye-close',context)).css({'background-image':`url(${icon_hidden_custom})`});$(once('view_password','.shwpd',context)).on('click',function(){$(this).toggleClass('eye-close eye-open');$(this).removeAttr('style');if($(this).hasClass('eye-open')){$(this).siblings(':password').prop('type','text');$(this).attr('aria-label',drupalSettings.view_password.hidePasswordLabel);if(icon_exposed_custom!=='')$(this).css({'background-image':`url(${icon_exposed_custom})`});}else{if($(this).hasClass('eye-close')){$(this).siblings(':text').prop('type','password');$(this).attr('aria-label',drupalSettings.view_password.showPasswordLabel);if(icon_hidden_custom!=='')$(this).css({'background-image':`url(${icon_hidden_custom})`});}}});}};})(jQuery,Drupal,drupalSettings,once);;

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.