PageSourceSearch

https://provincia.pistoia.it/sites/default/files/js/js_XleoTNdhLnw2ZRnmme19Jsy57cpFGHdx-Yw9hfiAVes.js

js provincia.pistoia.it collected 2026-10-02 04:19:34 UTC 51,158 bytes, 1,068 lines download raw bytes

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
8(function ($, once) {
9  var deprecatedMessageSuffix = "is deprecated in Drupal 9.3.0 and will be removed in Drupal 10.0.0. Use the core/once library instead. See https://www.drupal.org/node/3158256";
10  var originalJQOnce = $.fn.once;
11  var originalJQRemoveOnce = $.fn.removeOnce;
12
13  $.fn.once = function jQueryOnce(id) {
14    Drupal.deprecationError({
15      message: "jQuery.once() ".concat(deprecatedMessageSuffix)
16    });
17    return originalJQOnce.apply(this, [id]);
18  };
19
20  $.fn.removeOnce = function jQueryRemoveOnce(id) {
21    Drupal.deprecationError({
22      message: "jQuery.removeOnce() ".concat(deprecatedMessageSuffix)
23    });
24    return originalJQRemoveOnce.apply(this, [id]);
25  };
26
27  var drupalOnce = once;
28
29  function augmentedOnce(id, selector, context) {
30    originalJQOnce.apply($(selector, context), [id]);
31    return drupalOnce(id, selector, context);
32  }
33
34  function remove(id, selector, context) {
35    originalJQRemoveOnce.apply($(selector, context), [id]);
36    return drupalOnce.remove(id, selector, context);
37  }
38
39  window.once = Object.assign(augmentedOnce, drupalOnce, {
40    remove: remove
41  });
42})(jQuery, once);;
vendor: 17,050 bytes, lines 43-64
43/*!
44 * jQuery Form Plugin
45 * version: 4.3.0
46 * Requires jQuery v1.7.2 or later
47 * Project repository: https://github.com/jquery-form/form
48
49 * Copyright 2017 Kevin Morris
50 * Copyright 2006 M. Alsup
51
52 * Dual licensed under the LGPL-2.1+ or MIT licenses
53 * https://github.com/jquery-form/form#license
54
55 * This library is free software; you can redistribute it and/or
56 * modify it under the terms of the GNU Lesser General Public
57 * License as published by the Free Software Foundation; either
58 * version 2.1 of the License, or (at your option) any later version.
59 * This library is distributed in the hope that it will be useful,
60 * but WITHOUT ANY WARRANTY; without even the implied warranty of
61 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
62 * Lesser General Public License for more details.
63 */
64!function(r){"function"==typeof define&&define.amd?define(["jquery"],r):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),r(t),t}:r(jQuery)}(function(q){"use strict";var m=/\r?\n/g,S={};S.fileapi=void 0!==q('<input type="file">').get(0).files,S.formdata=void 0!==window.FormData;var _=!!q.fn.prop;function o(e){var t=e.data;e.isDefaultPrevented()||(e.preventDefault(),q(e.target).closest("form").ajaxSubmit(t))}function i(e){var t=e.target,r=q(t);if(!r.is("[type=submit],[type=image]")){var a=r.closest("[type=submit]");if(0===a.length)return;t=a[0]}var n,o=t.form;"image"===(o.clk=t).type&&(void 0!==e.offsetX?(o.clk_x=e.offsetX,o.clk_y=e.offsetY):"function"==typeof q.fn.offset?(n=r.offset(),o.clk_x=e.pageX-n.left,o.clk_y=e.pageY-n.top):(o.clk_x=e.pageX-t.offsetLeft,o.clk_y=e.pageY-t.offsetTop)),setTimeout(function(){o.clk=o.clk_x=o.clk_y=null},100)}function N(){var e;q.fn.ajaxSubmit.debug&&(e="[jquery.form] "+Array.prototype.join.call(arguments,""),window.console&&window.console.log?window.console.log(e):window.opera&&window.opera.postError&&window.opera.postError(e))}q.fn.attr2=function(){if(!_)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},q.fn.ajaxSubmit=function(M,e,t,r){if(!this.length)return N("ajaxSubmit: skipping submit process - no element selected"),this;var O,a,n,o,X=this;"function"==typeof M?M={success:M}:"string"==typeof M||!1===M&&0<arguments.length?(M={url:M,data:e,dataType:t},"function"==typeof r&&(M.success=r)):void 0===M&&(M={}),O=M.method||M.type||this.attr2("method"),n=(n=(n="string"==typeof(a=M.url||this.attr2("action"))?q.trim(a):"")||window.location.href||"")&&(n.match(/^([^#]+)/)||[])[1],o=/(MSIE|Trident)/.test(navigator.userAgent||"")&&/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",M=q.extend(!0,{url:n,success:q.ajaxSettings.success,type:O||q.ajaxSettings.type,iframeSrc:o},M);var i={};if(this.trigger("form-pre-serialize",[this,M,i]),i.veto)return N("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(M.beforeSerialize&&!1===M.beforeSerialize(this,M))return N("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var s=M.traditional;void 0===s&&(s=q.ajaxSettings.traditional);var u,c,C=[],l=this.formToArray(M.semantic,C,M.filtering);if(M.data&&(c=q.isFunction(M.data)?M.data(l):M.data,M.extraData=c,u=q.param(c,s)),M.beforeSubmit&&!1===M.beforeSubmit(l,this,M))return N("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[l,this,M,i]),i.veto)return N("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var f=q.param(l,s);u&&(f=f?f+"&"+u:u),"GET"===M.type.toUpperCase()?(M.url+=(0<=M.url.indexOf("?")?"&":"?")+f,M.data=null):M.data=f;var d,m,p,h=[];M.resetForm&&h.push(function(){X.resetForm()}),M.clearForm&&h.push(function(){X.clearForm(M.includeHidden)}),!M.dataType&&M.target?(d=M.success||function(){},h.push(function(e,t,r){var a=arguments,n=M.replaceTarget?"replaceWith":"html";q(M.target)[n](e).each(function(){d.apply(this,a)})})):M.success&&(q.isArray(M.success)?q.merge(h,M.success):h.push(M.success)),M.success=function(e,t,r){for(var a=M.context||this,n=0,o=h.length;n<o;n++)h[n].apply(a,[e,t,r||X,X])},M.error&&(m=M.error,M.error=function(e,t,r){var a=M.context||this;m.apply(a,[e,t,r,X])}),M.complete&&(p=M.complete,M.complete=function(e,t){var r=M.context||this;p.apply(r,[e,t,X])});var v=0<q("input[type=file]:enabled",this).filter(function(){return""!==q(this).val()}).length,g="multipart/form-data",x=X.attr("enctype")===g||X.attr("encoding")===g,y=S.fileapi&&S.formdata;N("fileAPI :"+y);var b,T=(v||x)&&!y;!1!==M.iframe&&(M.iframe||T)?M.closeKeepAlive?q.get(M.closeKeepAlive,function(){b=w(l)}):b=w(l):b=(v||x)&&y?function(e){for(var r=new FormData,t=0;t<e.length;t++)r.append(e[t].name,e[t].value);if(M.extraData){var a=function(e){var t,r,a=q.param(e,M.traditional).split("&"),n=a.length,o=[];for(t=0;t<n;t++)a[t]=a[t].replace(/\+/g," "),r=a[t].split("="),o.push([decodeURIComponent(r[0]),decodeURIComponent(r[1])]);return o}(M.extraData);for(t=0;t<a.length;t++)a[t]&&r.append(a[t][0],a[t][1])}M.data=null;var n=q.extend(!0,{},q.ajaxSettings,M,{contentType:!1,processData:!1,cache:!1,type:O||"POST"});M.uploadProgress&&(n.xhr=function(){var e=q.ajaxSettings.xhr();return e.upload&&e.upload.addEventListener("progress",function(e){var t=0,r=e.loaded||e.position,a=e.total;e.lengthComputable&&(t=Math.ceil(r/a*100)),M.uploadProgress(e,r,a,t)},!1),e});n.data=null;var o=n.beforeSend;return n.beforeSend=function(e,t){M.formData?t.data=M.formData:t.data=r,o&&o.call(this,e,t)},q.ajax(n)}(l):q.ajax(M),X.removeData("jqxhr").data("jqxhr",b);for(var j=0;j<C.length;j++)C[j]=null;return this.trigger("form-submit-notify",[this,M]),this;function w(e){var t,r,l,f,o,d,m,p,a,n,h,v,i=X[0],g=q.Deferred();if(g.abort=function(e){p.abort(e)},e)for(r=0;r<C.length;r++)t=q(C[r]),_?t.prop("disabled",!1):t.removeAttr("disabled");(l=q.extend(!0,{},q.ajaxSettings,M)).context=l.context||l,o="jqFormIO"+(new Date).getTime();var s=i.ownerDocument,u=X.closest("body");if(l.iframeTarget?(n=(d=q(l.iframeTarget,s)).attr2("name"))?o=n:d.attr2("name",o):(d=q('<iframe name="'+o+'" src="'+l.iframeSrc+'" />',s)).css({position:"absolute",top:"-1000px",left:"-1000px"}),m=d[0],p={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(e){var t="timeout"===e?"timeout":"aborted";N("aborting upload... "+t),this.aborted=1;try{m.contentWindow.document.execCommand&&m.contentWindow.document.execCommand("Stop")}catch(e){}d.attr("src",l.iframeSrc),p.error=t,l.error&&l.error.call(l.context,p,t,e),f&&q.event.trigger("ajaxError",[p,l,t]),l.complete&&l.complete.call(l.context,p,t)}},(f=l.global)&&0==q.active++&&q.event.trigger("ajaxStart"),f&&q.event.trigger("ajaxSend",[p,l]),l.beforeSend&&!1===l.beforeSend.call(l.context,p,l))return l.global&&q.active--,g.reject(),g;if(p.aborted)return g.reject(),g;(a=i.clk)&&(n=a.name)&&!a.disabled&&(l.extraData=l.extraData||{},l.extraData[n]=a.value,"image"===a.type&&(l.extraData[n+".x"]=i.clk_x,l.extraData[n+".y"]=i.clk_y));var x=1,y=2;function b(t){var r=null;try{t.contentWindow&&(r=t.contentWindow.document)}catch(e){N("cannot get iframe.contentWindow document: "+e)}if(r)return r;try{r=t.contentDocument?t.contentDocument:t.document}catch(e){N("cannot get iframe.contentDocument: "+e),r=t.document}return r}var c=q("meta[name=csrf-token]").attr("content"),T=q("meta[name=csrf-param]").attr("content");function j(){var e=X.attr2("target"),t=X.attr2("action"),r=X.attr("enctype")||X.attr("encoding")||"multipart/form-data";i.setAttribute("target",o),O&&!/post/i.test(O)||i.setAttribute("method","POST"),t!==l.url&&i.setAttribute("action",l.url),l.skipEncodingOverride||O&&!/post/i.test(O)||X.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),l.timeout&&(v=setTimeout(function(){h=!0,A(x)},l.timeout));var a=[];try{if(l.extraData)for(var n in l.extraData)l.extraData.hasOwnProperty(n)&&(q.isPlainObject(l.extraData[n])&&l.extraData[n].hasOwnProperty("name")&&l.extraData[n].hasOwnProperty("value")?a.push(q('<input type="hidden" name="'+l.extraData[n].name+'">',s).val(l.extraData[n].value).appendTo(i)[0]):a.push(q('<input type="hidden" name="'+n+'">',s).val(l.extraData[n]).appendTo(i)[0]));l.iframeTarget||d.appendTo(u),m.attachEvent?m.attachEvent("onload",A):m.addEventListener("load",A,!1),setTimeout(function e(){try{var t=b(m).readyState;N("state = "+t),t&&"uninitialized"===t.toLowerCase()&&setTimeout(e,50)}catch(e){N("Server abort: ",e," (",e.name,")"),A(y),v&&clearTimeout(v),v=void 0}},15);try{i.submit()}catch(e){document.createElement("form").submit.apply(i)}}finally{i.setAttribute("action",t),i.setAttribute("enctype",r),e?i.setAttribute("target",e):X.removeAttr("target"),q(a).remove()}}T&&c&&(l.extraData=l.extraData||{},l.extraData[T]=c),l.forceSync?j():setTimeout(j,10);var w,S,k,D=50;function A(e){if(!p.aborted&&!k){if((S=b(m))||(N("cannot access response document"),e=y),e===x&&p)return p.abort("timeout"),void g.reject(p,"timeout");if(e===y&&p)return p.abort("server abort"),void g.reject(p,"error","server abort");if(S&&S.location.href!==l.iframeSrc||h){m.detachEvent?m.detachEvent("onload",A):m.removeEventListener("load",A,!1);var t,r="success";try{if(h)throw"timeout";var a="xml"===l.dataType||S.XMLDocument||q.isXMLDoc(S);if(N("isXml="+a),!a&&window.opera&&(null===S.body||!S.body.innerHTML)&&--D)return N("requeing onLoad callback, DOM not available"),void setTimeout(A,250);var n=S.body?S.body:S.documentElement;p.responseText=n?n.innerHTML:null,p.responseXML=S.XMLDocument?S.XMLDocument:S,a&&(l.dataType="xml"),p.getResponseHeader=function(e){return{"content-type":l.dataType}[e.toLowerCase()]},n&&(p.status=Number(n.getAttribute("status"))||p.status,p.statusText=n.getAttribute("statusText")||p.statusText);var o,i,s,u=(l.dataType||"").toLowerCase(),c=/(json|script|text)/.test(u);c||l.textarea?(o=S.getElementsByTagName("textarea")[0])?(p.responseText=o.value,p.status=Number(o.getAttribute("status"))||p.status,p.statusText=o.getAttribute("statusText")||p.statusText):c&&(i=S.getElementsByTagName("pre")[0],s=S.getElementsByTagName("body")[0],i?p.responseText=i.textContent?i.textContent:i.innerText:s&&(p.responseText=s.textContent?s.textContent:s.innerText)):"xml"===u&&!p.responseXML&&p.responseText&&(p.responseXML=F(p.responseText));try{w=E(p,u,l)}catch(e){r="parsererror",p.error=t=e||r}}catch(e){N("error caught: ",e),r="error",p.error=t=e||r}p.aborted&&(N("upload aborted"),r=null),p.status&&(r=200<=p.status&&p.status<300||304===p.status?"success":"error"),"success"===r?(l.success&&l.success.call(l.context,w,"success",p),g.resolve(p.responseText,"success",p),f&&q.event.trigger("ajaxSuccess",[p,l])):r&&(void 0===t&&(t=p.statusText),l.error&&l.error.call(l.context,p,r,t),g.reject(p,"error",t),f&&q.event.trigger("ajaxError",[p,l,t])),f&&q.event.trigger("ajaxComplete",[p,l]),f&&!--q.active&&q.event.trigger("ajaxStop"),l.complete&&l.complete.call(l.context,p,r),k=!0,l.timeout&&clearTimeout(v),setTimeout(function(){l.iframeTarget?d.attr("src",l.iframeSrc):d.remove(),p.responseXML=null},100)}}}var F=q.parseXML||function(e,t){return window.ActiveXObject?((t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!==t.documentElement.nodeName?t:null},L=q.parseJSON||function(e){return window.eval("("+e+")")},E=function(e,t,r){var a=e.getResponseHeader("content-type")||"",n=("xml"===t||!t)&&0<=a.indexOf("xml"),o=n?e.responseXML:e.responseText;return n&&"parsererror"===o.documentElement.nodeName&&q.error&&q.error("parsererror"),r&&r.dataFilter&&(o=r.dataFilter(o,t)),"string"==typeof o&&(("json"===t||!t)&&0<=a.indexOf("json")?o=L(o):("script"===t||!t)&&0<=a.indexOf("javascript")&&q.globalEval(o)),o};return g}},q.fn.ajaxForm=function(e,t,r,a){if(("string"==typeof e||!1===e&&0<arguments.length)&&(e={url:e,data:t,dataType:r},"function"==typeof a&&(e.success=a)),(e=e||{}).delegation=e.delegation&&q.isFunction(q.fn.on),e.delegation||0!==this.length)return e.delegation?(q(document).off("submit.form-plugin",this.selector,o).off("click.form-plugin",this.selector,i).on("submit.form-plugin",this.selector,e,o).on("click.form-plugin",this.selector,e,i),this):(e.beforeFormUnbind&&e.beforeFormUnbind(this,e),this.ajaxFormUnbind().on("submit.form-plugin",e,o).on("click.form-plugin",e,i));var n={s:this.selector,c:this.context};return!q.isReady&&n.s?(N("DOM not ready, queuing ajaxForm"),q(function(){q(n.s,n.c).ajaxForm(e)})):N("terminating; zero elements found by selector"+(q.isReady?"":" (DOM not ready)")),this},q.fn.ajaxFormUnbind=function(){return this.off("submit.form-plugin click.form-plugin")},q.fn.formToArray=function(e,t,r){var a=[];if(0===this.length)return a;var n,o,i,s,u,c,l,f,d,m,p=this[0],h=this.attr("id"),v=(v=e||void 0===p.elements?p.getElementsByTagName("*"):p.elements)&&q.makeArray(v);if(h&&(e||/(Edge|Trident)\//.test(navigator.userAgent))&&(n=q(':input[form="'+h+'"]').get()).length&&(v=(v||[]).concat(n)),!v||!v.length)return a;for(q.isFunction(r)&&(v=q.map(v,r)),o=0,c=v.length;o<c;o++)if((m=(u=v[o]).name)&&!u.disabled)if(e&&p.clk&&"image"===u.type)p.clk===u&&(a.push({name:m,value:q(u).val(),type:u.type}),a.push({name:m+".x",value:p.clk_x},{name:m+".y",value:p.clk_y}));else if((s=q.fieldValue(u,!0))&&s.constructor===Array)for(t&&t.push(u),i=0,l=s.length;i<l;i++)a.push({name:m,value:s[i]});else if(S.fileapi&&"file"===u.type){t&&t.push(u);var g=u.files;if(g.length)for(i=0;i<g.length;i++)a.push({name:m,value:g[i],type:u.type});else a.push({name:m,value:"",type:u.type})}else null!=s&&(t&&t.push(u),a.push({name:m,value:s,type:u.type,required:u.required}));return e||!p.clk||(m=(d=(f=q(p.clk))[0]).name)&&!d.disabled&&"image"===d.type&&(a.push({name:m,value:f.val()}),a.push({name:m+".x",value:p.clk_x},{name:m+".y",value:p.clk_y})),a},q.fn.formSerialize=function(e){return q.param(this.formToArray(e))},q.fn.fieldSerialize=function(n){var o=[];return this.each(function(){var e=this.name;if(e){var t=q.fieldValue(this,n);if(t&&t.constructor===Array)for(var r=0,a=t.length;r<a;r++)o.push({name:e,value:t[r]});else null!=t&&o.push({name:this.name,value:t})}}),q.param(o)},q.fn.fieldValue=function(e){for(var t=[],r=0,a=this.length;r<a;r++){var n=this[r],o=q.fieldValue(n,e);null==o||o.constructor===Array&&!o.length||(o.constructor===Array?q.merge(t,o):t.push(o))}return t},q.fieldValue=function(e,t){var r=e.name,a=e.type,n=e.tagName.toLowerCase();if(void 0===t&&(t=!0),t&&(!r||e.disabled||"reset"===a||"button"===a||("checkbox"===a||"radio"===a)&&!e.checked||("submit"===a||"image"===a)&&e.form&&e.form.clk!==e||"select"===n&&-1===e.selectedIndex))return null;if("select"!==n)return q(e).val().replace(m,"\r\n");var o=e.selectedIndex;if(o<0)return null;for(var i=[],s=e.options,u="select-one"===a,c=u?o+1:s.length,l=u?o:0;l<c;l++){var f=s[l];if(f.selected&&!f.disabled){var d=(d=f.value)||(f.attributes&&f.attributes.value&&!f.attributes.value.specified?f.text:f.value);if(u)return d;i.push(d)}}return i},q.fn.clearForm=function(e){return this.each(function(){q("input,select,textarea",this).clearFields(e)})},q.fn.clearFields=q.fn.clearInputs=function(r){var a=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var e=this.type,t=this.tagName.toLowerCase();a.test(e)||"textarea"===t?this.value="":"checkbox"===e||"radio"===e?this.checked=!1:"select"===t?this.selectedIndex=-1:"file"===e?/MSIE/.test(navigator.userAgent)?q(this).replaceWith(q(this).clone(!0)):q(this).val(""):r&&(!0===r&&/hidden/.test(e)||"string"==typeof r&&q(this).is(r))&&(this.value="")})},q.fn.resetForm=function(){return this.each(function(){var t=q(this),e=this.tagName.toLowerCase();switch(e){case"input":this.checked=this.defaultChecked;case"textarea":return this.value=this.defaultValue,!0;case"option":case"optgroup":var r=t.parents("select");return r.length&&r[0].multiple?"option"===e?this.selected=this.defaultSelected:t.find("option").resetForm():r.resetForm(),!0;case"select":return t.find("option").each(function(e){if(this.selected=this.defaultSelected,this.defaultSelected&&!t[0].multiple)return t[0].selectedIndex=e,!1}),!0;case"label":var a=q(t.attr("for")),n=t.find("input,select,textarea");return a[0]&&n.unshift(a[0]),n.resetForm(),!0;case"form":return"function"!=typeof this.reset&&("object"!=typeof this.reset||this.reset.nodeType)||this.reset(),!0;default:return t.find("form,input,label,select,textarea").resetForm(),!0}})},q.fn.enable=function(e){return void 0===e&&(e=!0),this.each(function(){this.disabled=!e})},q.fn.selected=function(r){return void 0===r&&(r=!0),this.each(function(){var e,t=this.type;"checkbox"===t||"radio"===t?this.checked=r:"option"===this.tagName.toLowerCase()&&(e=q(this).parent("select"),r&&e[0]&&"select-one"===e[0].type&&e.find("option").selected(!1),this.selected=r)})},q.fn.ajaxSubmit.debug=!1});
65
66;
67/**
68* DO NOT EDIT THIS FILE.
69* See the following change record for more information,
70* https://www.drupal.org/node/2815083
71* @preserve
72**/
73
74(function ($, Drupal) {
75  Drupal.theme.progressBar = function (id) {
76    return "<div id=\"".concat(id, "\" class=\"progress\" aria-live=\"polite\">") + '<div class="progress__label">&nbsp;</div>' + '<div class="progress__track"><div class="progress__bar"></div></div>' + '<div class="progress__percentage"></div>' + '<div class="progress__description">&nbsp;</div>' + '</div>';
77  };
78
79  Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
80    this.id = id;
81    this.method = method || 'GET';
82    this.updateCallback = updateCallback;
83    this.errorCallback = errorCallback;
84    this.element = $(Drupal.theme('progressBar', id));
85  };
86
87  $.extend(Drupal.ProgressBar.prototype, {
88    setProgress: function setProgress(percentage, message, label) {
89      if (percentage >= 0 && percentage <= 100) {
90        $(this.element).find('div.progress__bar').css('width', "".concat(percentage, "%"));
91        $(this.element).find('div.progress__percentage').html("".concat(percentage, "%"));
92      }
93
94      $('div.progress__description', this.element).html(message);
95      $('div.progress__label', this.element).html(label);
96
97      if (this.updateCallback) {
98        this.updateCallback(percentage, message, this);
99      }
100    },
101    startMonitoring: function startMonitoring(uri, delay) {
102      this.delay = delay;
103      this.uri = uri;
104      this.sendPing();
105    },
106    stopMonitoring: function stopMonitoring() {
107      clearTimeout(this.timer);
108      this.uri = null;
109    },
110    sendPing: function sendPing() {
111      if (this.timer) {
112        clearTimeout(this.timer);
113      }
114
115      if (this.uri) {
116        var pb = this;
117        var uri = this.uri;
118
119        if (uri.indexOf('?') === -1) {
120          uri += '?';
121        } else {
122          uri += '&';
123        }
124
125        uri += '_format=json';
126        $.ajax({
127          type: this.method,
128          url: uri,
129          data: '',
130          dataType: 'json',
131          success: function success(progress) {
132            if (progress.status === 0) {
133              pb.displayError(progress.data);
134              return;
135            }
136
137            pb.setProgress(progress.percentage, progress.message, progress.label);
138            pb.timer = setTimeout(function () {
139              pb.sendPing();
140            }, pb.delay);
141          },
142          error: function error(xmlhttp) {
143            var e = new Drupal.AjaxError(xmlhttp, pb.uri);
144            pb.displayError("<pre>".concat(e.message, "</pre>"));
145          }
146        });
147      }
148    },
149    displayError: function displayError(string) {
150      var error = $('<div class="messages messages--error"></div>').html(string);
151      $(this.element).before(error).hide();
152
153      if (this.errorCallback) {
154        this.errorCallback(this);
155      }
156    }
157  });
158})(jQuery, Drupal);;
159/**
160* DO NOT EDIT THIS FILE.
161* See the following change record for more information,
162* https://www.drupal.org/node/2815083
163* @preserve
164**/
165
166(function (Drupal) {
167  Drupal.behaviors.responsiveImageAJAX = {
168    attach: function attach() {
169      if (window.picturefill) {
170        window.picturefill();
171      }
172    }
173  };
174})(Drupal);;
175/**
176* DO NOT EDIT THIS FILE.
177* See the following change record for more information,
178* https://www.drupal.org/node/2815083
179* @preserve
180**/
181
182function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
183
184function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
185
186function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
187
188function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
189
190function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
191
192function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
193
194(function ($, window, Drupal, drupalSettings, _ref) {
195  var isFocusable = _ref.isFocusable,
196      tabbable = _ref.tabbable;
197  Drupal.behaviors.AJAX = {
198    attach: function attach(context, settings) {
199      function loadAjaxBehavior(base) {
200        var elementSettings = settings.ajax[base];
201
202        if (typeof elementSettings.selector === 'undefined') {
203          elementSettings.selector = "#".concat(base);
204        }
205
206        once('drupal-ajax', $(elementSettings.selector)).forEach(function (el) {
207          elementSettings.element = el;
208          elementSettings.base = base;
209          Drupal.ajax(elementSettings);
210        });
211      }
212
213      Object.keys(settings.ajax || {}).forEach(function (base) {
214        return loadAjaxBehavior(base);
215      });
216      Drupal.ajax.bindAjaxLinks(document.body);
217      once('ajax', '.use-ajax-submit').forEach(function (el) {
218        var elementSettings = {};
219        elementSettings.url = $(el.form).attr('action');
220        elementSettings.setClick = true;
221        elementSettings.event = 'click';
222        elementSettings.progress = {
223          type: 'throbber'
224        };
225        elementSettings.base = el.id;
226        elementSettings.element = el;
227        Drupal.ajax(elementSettings);
228      });
229    },
230    detach: function detach(context, settings, trigger) {
231      if (trigger === 'unload') {
232        Drupal.ajax.expired().forEach(function (instance) {
233          Drupal.ajax.instances[instance.instanceIndex] = null;
234        });
235      }
236    }
237  };
238
239  Drupal.AjaxError = function (xmlhttp, uri, customMessage) {
240    var statusCode;
241    var statusText;
242    var responseText;
243
244    if (xmlhttp.status) {
245      statusCode = "\n".concat(Drupal.t('An AJAX HTTP error occurred.'), "\n").concat(Drupal.t('HTTP Result Code: !status', {
246        '!status': xmlhttp.status
247      }));
248    } else {
249      statusCode = "\n".concat(Drupal.t('An AJAX HTTP request terminated abnormally.'));
250    }
251
252    statusCode += "\n".concat(Drupal.t('Debugging information follows.'));
253    var pathText = "\n".concat(Drupal.t('Path: !uri', {
254      '!uri': uri
255    }));
256    statusText = '';
257
258    try {
259      statusText = "\n".concat(Drupal.t('StatusText: !statusText', {
260        '!statusText': xmlhttp.statusText.trim()
261      }));
262    } catch (e) {}
263
264    responseText = '';
265
266    try {
267      responseText = "\n".concat(Drupal.t('ResponseText: !responseText', {
268        '!responseText': xmlhttp.responseText.trim()
269      }));
270    } catch (e) {}
271
272    responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, '');
273    responseText = responseText.replace(/[\n]+\s+/g, '\n');
274    var readyStateText = xmlhttp.status === 0 ? "\n".concat(Drupal.t('ReadyState: !readyState', {
275      '!readyState': xmlhttp.readyState
276    })) : '';
277    customMessage = customMessage ? "\n".concat(Drupal.t('CustomMessage: !customMessage', {
278      '!customMessage': customMessage
279    })) : '';
280    this.message = statusCode + pathText + statusText + customMessage + responseText + readyStateText;
281    this.name = 'AjaxError';
282  };
283
284  Drupal.AjaxError.prototype = new Error();
285  Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
286
287  Drupal.ajax = function (settings) {
288    if (arguments.length !== 1) {
289      throw new Error('Drupal.ajax() function must be called with one configuration object only');
290    }
291
292    var base = settings.base || false;
293    var element = settings.element || false;
294    delete settings.base;
295    delete settings.element;
296
297    if (!settings.progress && !element) {
298      settings.progress = false;
299    }
300
301    var ajax = new Drupal.Ajax(base, element, settings);
302    ajax.instanceIndex = Drupal.ajax.instances.length;
303    Drupal.ajax.instances.push(ajax);
304    return ajax;
305  };
306
307  Drupal.ajax.instances = [];
308
309  Drupal.ajax.expired = function () {
310    return Drupal.ajax.instances.filter(function (instance) {
311      return instance && instance.element !== false && !document.body.contains(instance.element);
312    });
313  };
314
315  Drupal.ajax.bindAjaxLinks = function (element) {
316    once('ajax', '.use-ajax', element).forEach(function (ajaxLink) {
317      var $linkElement = $(ajaxLink);
318      var elementSettings = {
319        progress: {
320          type: 'throbber'
321        },
322        dialogType: $linkElement.data('dialog-type'),
323        dialog: $linkElement.data('dialog-options'),
324        dialogRenderer: $linkElement.data('dialog-renderer'),
325        base: $linkElement.attr('id'),
326        element: ajaxLink
327      };
328      var href = $linkElement.attr('href');
329
330      if (href) {
331        elementSettings.url = href;
332        elementSettings.event = 'click';
333      }
334
335      Drupal.ajax(elementSettings);
336    });
337  };
338
339  Drupal.Ajax = function (base, element, elementSettings) {
340    var defaults = {
341      event: element ? 'mousedown' : null,
342      keypress: true,
343      selector: base ? "#".concat(base) : null,
344      effect: 'none',
345      speed: 'none',
346      method: 'replaceWith',
347      progress: {
348        type: 'throbber',
349        message: Drupal.t('Please wait...')
350      },
351      submit: {
352        js: true
353      }
354    };
355    $.extend(this, defaults, elementSettings);
356    this.commands = new Drupal.AjaxCommands();
357    this.instanceIndex = false;
358
359    if (this.wrapper) {
360      this.wrapper = "#".concat(this.wrapper);
361    }
362
363    this.element = element;
364    this.element_settings = elementSettings;
365    this.elementSettings = elementSettings;
366
367    if (this.element && this.element.form) {
368      this.$form = $(this.element.form);
369    }
370
371    if (!this.url) {
372      var $element = $(this.element);
373
374      if ($element.is('a')) {
375        this.url = $element.attr('href');
376      } else if (this.element && element.form) {
377        this.url = this.$form.attr('action');
378      }
379    }
380
381    var originalUrl = this.url;
382    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/, '/ajax$1');
383
384    if (drupalSettings.ajaxTrustedUrl[originalUrl]) {
385      drupalSettings.ajaxTrustedUrl[this.url] = true;
386    }
387
388    var ajax = this;
389    ajax.options = {
390      url: ajax.url,
391      data: ajax.submit,
392      beforeSerialize: function beforeSerialize(elementSettings, options) {
393        return ajax.beforeSerialize(elementSettings, options);
394      },
395      beforeSubmit: function beforeSubmit(formValues, elementSettings, options) {
396        ajax.ajaxing = true;
397        return ajax.beforeSubmit(formValues, elementSettings, options);
398      },
399      beforeSend: function beforeSend(xmlhttprequest, options) {
400        ajax.ajaxing = true;
401        return ajax.beforeSend(xmlhttprequest, options);
402      },
403      success: function success(response, status, xmlhttprequest) {
404        if (typeof response === 'string') {
405          response = $.parseJSON(response);
406        }
407
408        if (response !== null && !drupalSettings.ajaxTrustedUrl[ajax.url]) {
409          if (xmlhttprequest.getResponseHeader('X-Drupal-Ajax-Token') !== '1') {
410            var customMessage = Drupal.t('The response failed verification so will not be processed.');
411            return ajax.error(xmlhttprequest, ajax.url, customMessage);
412          }
413        }
414
415        return ajax.success(response, status);
416      },
417      complete: function complete(xmlhttprequest, status) {
418        ajax.ajaxing = false;
419
420        if (status === 'error' || status === 'parsererror') {
421          return ajax.error(xmlhttprequest, ajax.url);
422        }
423      },
424      dataType: 'json',
425      jsonp: false,
426      type: 'POST'
427    };
428
429    if (elementSettings.dialog) {
430      ajax.options.data.dialogOptions = elementSettings.dialog;
431    }
432
433    if (ajax.options.url.indexOf('?') === -1) {
434      ajax.options.url += '?';
435    } else {
436      ajax.options.url += '&';
437    }
438
439    var wrapper = "drupal_".concat(elementSettings.dialogType || 'ajax');
440
441    if (elementSettings.dialogRenderer) {
442      wrapper += ".".concat(elementSettings.dialogRenderer);
443    }
444
445    ajax.options.url += "".concat(Drupal.ajax.WRAPPER_FORMAT, "=").concat(wrapper);
446    $(ajax.element).on(elementSettings.event, function (event) {
447      if (!drupalSettings.ajaxTrustedUrl[ajax.url] && !Drupal.url.isLocal(ajax.url)) {
448        throw new Error(Drupal.t('The callback URL is not local and not trusted: !url', {
449          '!url': ajax.url
450        }));
451      }
452
453      return ajax.eventResponse(this, event);
454    });
455
456    if (elementSettings.keypress) {
457      $(ajax.element).on('keypress', function (event) {
458        return ajax.keypressResponse(this, event);
459      });
460    }
461
462    if (elementSettings.prevent) {
463      $(ajax.element).on(elementSettings.prevent, false);
464    }
465  };
466
467  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
468  Drupal.Ajax.AJAX_REQUEST_PARAMETER = '_drupal_ajax';
469
470  Drupal.Ajax.prototype.execute = function () {
471    if (this.ajaxing) {
472      return;
473    }
474
475    try {
476      this.beforeSerialize(this.element, this.options);
477      return $.ajax(this.options);
478    } catch (e) {
479      this.ajaxing = false;
480      window.alert("An error occurred while attempting to process ".concat(this.options.url, ": ").concat(e.message));
481      return $.Deferred().reject();
482    }
483  };
484
485  Drupal.Ajax.prototype.keypressResponse = function (element, event) {
486    var ajax = this;
487
488    if (event.which === 13 || event.which === 32 && element.type !== 'text' && element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number') {
489      event.preventDefault();
490      event.stopPropagation();
491      $(element).trigger(ajax.elementSettings.event);
492    }
493  };
494
495  Drupal.Ajax.prototype.eventResponse = function (element, event) {
496    event.preventDefault();
497    event.stopPropagation();
498    var ajax = this;
499
500    if (ajax.ajaxing) {
501      return;
502    }
503
504    try {
505      if (ajax.$form) {
506        if (ajax.setClick) {
507          element.form.clk = element;
508        }
509
510        ajax.$form.ajaxSubmit(ajax.options);
511      } else {
512        ajax.beforeSerialize(ajax.element, ajax.options);
513        $.ajax(ajax.options);
514      }
515    } catch (e) {
516      ajax.ajaxing = false;
517      window.alert("An error occurred while attempting to process ".concat(ajax.options.url, ": ").concat(e.message));
518    }
519  };
520
521  Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
522    if (this.$form && document.body.contains(this.$form.get(0))) {
523      var settings = this.settings || drupalSettings;
524      Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
525    }
526
527    options.data[Drupal.Ajax.AJAX_REQUEST_PARAMETER] = 1;
528    var pageState = drupalSettings.ajaxPageState;
529    options.data['ajax_page_state[theme]'] = pageState.theme;
530    options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
531    options.data['ajax_page_state[libraries]'] = pageState.libraries;
532  };
533
534  Drupal.Ajax.prototype.beforeSubmit = function (formValues, element, options) {};
535
536  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
537    if (this.$form) {
538      options.extraData = options.extraData || {};
539      options.extraData.ajax_iframe_upload = '1';
540      var v = $.fieldValue(this.element);
541
542      if (v !== null) {
543        options.extraData[this.element.name] = v;
544      }
545    }
546
547    $(this.element).prop('disabled', true);
548
549    if (!this.progress || !this.progress.type) {
550      return;
551    }
552
553    var progressIndicatorMethod = "setProgressIndicator".concat(this.progress.type.slice(0, 1).toUpperCase()).concat(this.progress.type.slice(1).toLowerCase());
554
555    if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
556      this[progressIndicatorMethod].call(this);
557    }
558  };
559
560  Drupal.theme.ajaxProgressThrobber = function (message) {
561    var messageMarkup = typeof message === 'string' ? Drupal.theme('ajaxProgressMessage', message) : '';
562    var throbber = '<div class="throbber">&nbsp;</div>';
563    return "<div class=\"ajax-progress ajax-progress-throbber\">".concat(throbber).concat(messageMarkup, "</div>");
564  };
565
566  Drupal.theme.ajaxProgressIndicatorFullscreen = function () {
567    return '<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>';
568  };
569
570  Drupal.theme.ajaxProgressMessage = function (message) {
571    return "<div class=\"message\">".concat(message, "</div>");
572  };
573
574  Drupal.theme.ajaxProgressBar = function ($element) {
575    return $('<div class="ajax-progress ajax-progress-bar"></div>').append($element);
576  };
577
578  Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
579    var progressBar = new Drupal.ProgressBar("ajax-progress-".concat(this.element.id), $.noop, this.progress.method, $.noop);
580
581    if (this.progress.message) {
582      progressBar.setProgress(-1, this.progress.message);
583    }
584
585    if (this.progress.url) {
586      progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
587    }
588
589    this.progress.element = $(Drupal.theme('ajaxProgressBar', progressBar.element));
590    this.progress.object = progressBar;
591    $(this.element).after(this.progress.element);
592  };
593
594  Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
595    this.progress.element = $(Drupal.theme('ajaxProgressThrobber', this.progress.message));
596    $(this.element).after(this.progress.element);
597  };
598
599  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
600    this.progress.element = $(Drupal.theme('ajaxProgressIndicatorFullscreen'));
601    $('body').append(this.progress.element);
602  };
603
604  Drupal.Ajax.prototype.success = function (response, status) {
605    var _this = this;
606
607    if (this.progress.element) {
608      $(this.progress.element).remove();
609    }
610
611    if (this.progress.object) {
612      this.progress.object.stopMonitoring();
613    }
614
615    $(this.element).prop('disabled', false);
616    var elementParents = $(this.element).parents('[data-drupal-selector]').addBack().toArray();
617    var focusChanged = false;
618    Object.keys(response || {}).forEach(function (i) {
619      if (response[i].command && _this.commands[response[i].command]) {
620        _this.commands[response[i].command](_this, response[i], status);
621
622        if (response[i].command === 'invoke' && response[i].method === 'focus' || response[i].command === 'focusFirst') {
623          focusChanged = true;
624        }
625      }
626    });
627
628    if (!focusChanged && this.element && !$(this.element).data('disable-refocus')) {
629      var target = false;
630
631      for (var n = elementParents.length - 1; !target && n >= 0; n--) {
632        target = document.querySelector("[data-drupal-selector=\"".concat(elementParents[n].getAttribute('data-drupal-selector'), "\"]"));
633      }
634
635      if (target) {
636        $(target).trigger('focus');
637      }
638    }
639
640    if (this.$form && document.body.contains(this.$form.get(0))) {
641      var settings = this.settings || drupalSettings;
642      Drupal.attachBehaviors(this.$form.get(0), settings);
643    }
644
645    this.settings = null;
646  };
647
648  Drupal.Ajax.prototype.getEffect = function (response) {
649    var type = response.effect || this.effect;
650    var speed = response.speed || this.speed;
651    var effect = {};
652
653    if (type === 'none') {
654      effect.showEffect = 'show';
655      effect.hideEffect = 'hide';
656      effect.showSpeed = '';
657    } else if (type === 'fade') {
658      effect.showEffect = 'fadeIn';
659      effect.hideEffect = 'fadeOut';
660      effect.showSpeed = speed;
661    } else {
662      effect.showEffect = "".concat(type, "Toggle");
663      effect.hideEffect = "".concat(type, "Toggle");
664      effect.showSpeed = speed;
665    }
666
667    return effect;
668  };
669
670  Drupal.Ajax.prototype.error = function (xmlhttprequest, uri, customMessage) {
671    if (this.progress.element) {
672      $(this.progress.element).remove();
673    }
674
675    if (this.progress.object) {
676      this.progress.object.stopMonitoring();
677    }
678
679    $(this.wrapper).show();
680    $(this.element).prop('disabled', false);
681
682    if (this.$form && document.body.contains(this.$form.get(0))) {
683      var settings = this.settings || drupalSettings;
684      Drupal.attachBehaviors(this.$form.get(0), settings);
685    }
686
687    throw new Drupal.AjaxError(xmlhttprequest, uri, customMessage);
688  };
689
690  Drupal.theme.ajaxWrapperNewContent = function ($newContent, ajax, response) {
691    return (response.effect || ajax.effect) !== 'none' && $newContent.filter(function (i) {
692      return !($newContent[i].nodeName === '#comment' || $newContent[i].nodeName === '#text' && /^(\s|\n|\r)*$/.test($newContent[i].textContent));
693    }).length > 1 ? Drupal.theme('ajaxWrapperMultipleRootElements', $newContent) : $newContent;
694  };
695
696  Drupal.theme.ajaxWrapperMultipleRootElements = function ($elements) {
697    return $('<div></div>').append($elements);
698  };
699
700  Drupal.AjaxCommands = function () {};
701
702  Drupal.AjaxCommands.prototype = {
703    insert: function insert(ajax, response) {
704      var $wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
705      var method = response.method || ajax.method;
706      var effect = ajax.getEffect(response);
707      var settings = response.settings || ajax.settings || drupalSettings;
708      var $newContent = $($.parseHTML(response.data, document, true));
709      $newContent = Drupal.theme('ajaxWrapperNewContent', $newContent, ajax, response);
710
711      switch (method) {
712        case 'html':
713        case 'replaceWith':
714        case 'replaceAll':
715        case 'empty':
716        case 'remove':
717          Drupal.detachBehaviors($wrapper.get(0), settings);
718          break;
719
720        default:
721          break;
722      }
723
724      $wrapper[method]($newContent);
725
726      if (effect.showEffect !== 'show') {
727        $newContent.hide();
728      }
729
730      var $ajaxNewContent = $newContent.find('.ajax-new-content');
731
732      if ($ajaxNewContent.length) {
733        $ajaxNewContent.hide();
734        $newContent.show();
735        $ajaxNewContent[effect.showEffect](effect.showSpeed);
736      } else if (effect.showEffect !== 'show') {
737        $newContent[effect.showEffect](effect.showSpeed);
738      }
739
740      if ($newContent.parents('html').length) {
741        $newContent.each(function (index, element) {
742          if (element.nodeType === Node.ELEMENT_NODE) {
743            Drupal.attachBehaviors(element, settings);
744          }
745        });
746      }
747    },
748    remove: function remove(ajax, response, status) {
749      var settings = response.settings || ajax.settings || drupalSettings;
750      $(response.selector).each(function () {
751        Drupal.detachBehaviors(this, settings);
752      }).remove();
753    },
754    changed: function changed(ajax, response, status) {
755      var $element = $(response.selector);
756
757      if (!$element.hasClass('ajax-changed')) {
758        $element.addClass('ajax-changed');
759
760        if (response.asterisk) {
761          $element.find(response.asterisk).append(" <abbr class=\"ajax-changed\" title=\"".concat(Drupal.t('Changed'), "\">*</abbr> "));
762        }
763      }
764    },
765    alert: function alert(ajax, response, status) {
766      window.alert(response.text);
767    },
768    announce: function announce(ajax, response) {
769      if (response.priority) {
770        Drupal.announce(response.text, response.priority);
771      } else {
772        Drupal.announce(response.text);
773      }
774    },
775    redirect: function redirect(ajax, response, status) {
776      window.location = response.url;
777    },
778    css: function css(ajax, response, status) {
779      $(response.selector).css(response.argument);
780    },
781    settings: function settings(ajax, response, status) {
782      var ajaxSettings = drupalSettings.ajax;
783
784      if (ajaxSettings) {
785        Drupal.ajax.expired().forEach(function (instance) {
786          if (instance.selector) {
787            var selector = instance.selector.replace('#', '');
788
789            if (selector in ajaxSettings) {
790              delete ajaxSettings[selector];
791            }
792          }
793        });
794      }
795
796      if (response.merge) {
797        $.extend(true, drupalSettings, response.settings);
798      } else {
799        ajax.settings = response.settings;
800      }
801    },
802    data: function data(ajax, response, status) {
803      $(response.selector).data(response.name, response.value);
804    },
805    focusFirst: function focusFirst(ajax, response, status) {
806      var focusChanged = false;
807      var container = document.querySelector(response.selector);
808
809      if (container) {
810        var tabbableElements = tabbable(container);
811
812        if (tabbableElements.length) {
813          tabbableElements[0].focus();
814          focusChanged = true;
815        } else if (isFocusable(container)) {
816          container.focus();
817          focusChanged = true;
818        }
819      }
820
821      if (ajax.hasOwnProperty('element') && !focusChanged) {
822        ajax.element.focus();
823      }
824    },
825    invoke: function invoke(ajax, response, status) {
826      var $element = $(response.selector);
827      $element[response.method].apply($element, _toConsumableArray(response.args));
828    },
829    restripe: function restripe(ajax, response, status) {
830      $(response.selector).find('> tbody > tr:visible, > tr:visible').removeClass('odd even').filter(':even').addClass('odd').end().filter(':odd').addClass('even');
831    },
832    update_build_id: function update_build_id(ajax, response, status) {
833      document.querySelectorAll("input[name=\"form_build_id\"][value=\"".concat(response.old, "\"]")).forEach(function (item) {
834        item.value = response.new;
835      });
836    },
837    add_css: function add_css(ajax, response, status) {
838      $('head').prepend(response.data);
839    },
840    message: function message(ajax, response) {
841      var messages = new Drupal.Message(document.querySelector(response.messageWrapperQuerySelector));
842
843      if (response.clearPrevious) {
844        messages.clear();
845      }
846
847      messages.add(response.message, response.messageOptions);
848    }
849  };
850})(jQuery, window, Drupal, drupalSettings, window.tabbable);;
851/**
852* DO NOT EDIT THIS FILE.
853* See the following change record for more information,
854* https://www.drupal.org/node/2815083
855* @preserve
856**/
857
858(function ($, Drupal, drupalSettings) {
859  Drupal.Views = {};
860
861  Drupal.Views.parseQueryString = function (query) {
862    var args = {};
863    var pos = query.indexOf('?');
864
865    if (pos !== -1) {
866      query = query.substring(pos + 1);
867    }
868
869    var pair;
870    var pairs = query.split('&');
871
872    for (var i = 0; i < pairs.length; i++) {
873      pair = pairs[i].split('=');
874
875      if (pair[0] !== 'q' && pair[1]) {
876        args[decodeURIComponent(pair[0].replace(/\+/g, ' '))] = decodeURIComponent(pair[1].replace(/\+/g, ' '));
877      }
878    }
879
880    return args;
881  };
882
883  Drupal.Views.parseViewArgs = function (href, viewPath) {
884    var returnObj = {};
885    var path = Drupal.Views.getPath(href);
886    var viewHref = Drupal.url(viewPath).substring(drupalSettings.path.baseUrl.length);
887
888    if (viewHref && path.substring(0, viewHref.length + 1) === "".concat(viewHref, "/")) {
889      returnObj.view_args = decodeURIComponent(path.substring(viewHref.length + 1, path.length));
890      returnObj.view_path = path;
891    }
892
893    return returnObj;
894  };
895
896  Drupal.Views.pathPortion = function (href) {
897    var protocol = window.location.protocol;
898
899    if (href.substring(0, protocol.length) === protocol) {
900      href = href.substring(href.indexOf('/', protocol.length + 2));
901    }
902
903    return href;
904  };
905
906  Drupal.Views.getPath = function (href) {
907    href = Drupal.Views.pathPortion(href);
908    href = href.substring(drupalSettings.path.baseUrl.length, href.length);
909
910    if (href.substring(0, 3) === '?q=') {
911      href = href.substring(3, href.length);
912    }
913
914    var chars = ['#', '?', '&'];
915
916    for (var i = 0; i < chars.length; i++) {
917      if (href.indexOf(chars[i]) > -1) {
918        href = href.substr(0, href.indexOf(chars[i]));
919      }
920    }
921
922    return href;
923  };
924})(jQuery, Drupal, drupalSettings);;
925/**
926* DO NOT EDIT THIS FILE.
927* See the following change record for more information,
928* https://www.drupal.org/node/2815083
929* @preserve
930**/
931
932(function ($, Drupal, drupalSettings) {
933  Drupal.behaviors.ViewsAjaxView = {};
934
935  Drupal.behaviors.ViewsAjaxView.attach = function (context, settings) {
936    if (settings && settings.views && settings.views.ajaxViews) {
937      var ajaxViews = settings.views.ajaxViews;
938      Object.keys(ajaxViews || {}).forEach(function (i) {
939        Drupal.views.instances[i] = new Drupal.views.ajaxView(ajaxViews[i]);
940      });
941    }
942  };
943
944  Drupal.behaviors.ViewsAjaxView.detach = function (context, settings, trigger) {
945    if (trigger === 'unload') {
946      if (settings && settings.views && settings.views.ajaxViews) {
947        var ajaxViews = settings.views.ajaxViews;
948        Object.keys(ajaxViews || {}).forEach(function (i) {
949          var selector = ".js-view-dom-id-".concat(ajaxViews[i].view_dom_id);
950
951          if ($(selector, context).length) {
952            delete Drupal.views.instances[i];
953            delete settings.views.ajaxViews[i];
954          }
955        });
956      }
957    }
958  };
959
960  Drupal.views = {};
961  Drupal.views.instances = {};
962
963  Drupal.views.ajaxView = function (settings) {
964    var selector = ".js-view-dom-id-".concat(settings.view_dom_id);
965    this.$view = $(selector);
966    var ajaxPath = drupalSettings.views.ajax_path;
967
968    if (ajaxPath.constructor.toString().indexOf('Array') !== -1) {
969      ajaxPath = ajaxPath[0];
970    }
971
972    var queryString = window.location.search || '';
973
974    if (queryString !== '') {
975      queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, '');
976
977      if (queryString !== '') {
978        queryString = (/\?/.test(ajaxPath) ? '&' : '?') + queryString;
979      }
980    }
981
982    this.element_settings = {
983      url: ajaxPath + queryString,
984      submit: settings,
985      setClick: true,
986      event: 'click',
987      selector: selector,
988      progress: {
989        type: 'fullscreen'
990      }
991    };
992    this.settings = settings;
993    this.$exposed_form = $("form#views-exposed-form-".concat(settings.view_name.replace(/_/g, '-'), "-").concat(settings.view_display_id.replace(/_/g, '-')));
994    once('exposed-form', this.$exposed_form).forEach($.proxy(this.attachExposedFormAjax, this));
995    once('ajax-pager', this.$view.filter($.proxy(this.filterNestedViews, this))).forEach($.proxy(this.attachPagerAjax, this));
996    var selfSettings = $.extend({}, this.element_settings, {
997      event: 'RefreshView',
998      base: this.selector,
999      element: this.$view.get(0)
1000    });
1001    this.refreshViewAjax = Drupal.ajax(selfSettings);
1002  };
1003
1004  Drupal.views.ajaxView.prototype.attachExposedFormAjax = function () {
1005    var that = this;
1006    this.exposedFormAjax = [];
1007    $('input[type=submit], button[type=submit], input[type=image]', this.$exposed_form).not('[data-drupal-selector=edit-reset]').each(function (index) {
1008      var selfSettings = $.extend({}, that.element_settings, {
1009        base: $(this).attr('id'),
1010        element: this
1011      });
1012      that.exposedFormAjax[index] = Drupal.ajax(selfSettings);
1013    });
1014  };
1015
1016  Drupal.views.ajaxView.prototype.filterNestedViews = function () {
1017    return !this.$view.parents('.view').length;
1018  };
1019
1020  Drupal.views.ajaxView.prototype.attachPagerAjax = function () {
1021    this.$view.find('ul.js-pager__items > li > a, th.views-field a, .attachment .views-summary a').each($.proxy(this.attachPagerLinkAjax, this));
1022  };
1023
1024  Drupal.views.ajaxView.prototype.attachPagerLinkAjax = function (id, link) {
1025    var $link = $(link);
1026    var viewData = {};
1027    var href = $link.attr('href');
1028    $.extend(viewData, this.settings, Drupal.Views.parseQueryString(href), Drupal.Views.parseViewArgs(href, this.settings.view_base_path));
1029    var selfSettings = $.extend({}, this.element_settings, {
1030      submit: viewData,
1031      base: false,
1032      element: link
1033    });
1034    this.pagerAjax = Drupal.ajax(selfSettings);
1035  };
1036
1037  Drupal.AjaxCommands.prototype.viewsScrollTop = function (ajax, response) {
1038    var offset = $(response.selector).offset();
1039    var scrollTarget = response.selector;
1040
1041    while ($(scrollTarget).scrollTop() === 0 && $(scrollTarget).parent()) {
1042      scrollTarget = $(scrollTarget).parent();
1043    }
1044
1045    if (offset.top - 10 < $(scrollTarget).scrollTop()) {
1046      $(scrollTarget).animate({
1047        scrollTop: offset.top - 10
1048      }, 500);
1049    }
1050  };
1051})(jQuery, Drupal, drupalSettings);;
1052/**
1053* DO NOT EDIT THIS FILE.
1054* See the following change record for more information,
1055* https://www.drupal.org/node/2815083
1056* @preserve
1057**/
1058
1059(function ($, Drupal, drupalSettings) {
1060  $(document).ready(function () {
1061    $.ajax({
1062      type: 'POST',
1063      cache: false,
1064      url: drupalSettings.statistics.url,
1065      data: drupalSettings.statistics.data
1066    });
1067  });
1068})(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.