PageSourceSearch

https://www.bureaudescongres-nantes.fr/sites/default/files/js/js_f…y5dCNvsN7CoYxG5aIVvpQUNj9Uy6vstdnpTEl4RM.js

js bureaudescongres-nantes.fr collected 2026-10-08 12:27:15 UTC 72,164 bytes, 1,300 lines download raw bytes

1!function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){t.exports=n(1)},function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}n.r(e);var r=jQuery,a=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.value=e,r.fn.sendGTMData=function(e){t.GTMIsActive()&&t.me().send(e)}}var e,n,a;return e=t,a=[{key:"me",value:function(e){return void 0===t._me&&(t._me=new t(e),window.GTMToolsClass=t),t._me}},{key:"GTMIsActive",value:function(){return"undefined"==typeof tarteaucitron||"undefined"!=typeof TacHelpers&&TacHelpers.checkCookie("googletagmanager")}}],(n=[{key:"attach",value:function(e){var n=this;this.isInit=!1,this.prefix="data-gtm",this.$body=r("body"),this.sendProd=this.sendProd.bind(this),this.sendTest=this.sendTest.bind(this),"undefined"!=typeof tarteaucitron?r(document).on(tarteaucitronEvents.TARTEAUCITRON_READY+", "+tarteaucitronEvents.TARTEAUCITRON_SERVICE_UPDATE_STATUS,(function(){t.GTMIsActive()&&!n.isInit&&n.init(e)})):this.isInit||this.init(e)}},{key:"init",value:function(t){var e=this;this.isInit=!0,this.clickCallback=this.isTestMode()?this.sendTest:this.sendProd,this.$body.on("click","["+this.prefix+"]",this.clickCallback),this.onSubmitForm=this.onSubmitForm.bind(this),r(t).find("[data-gtm-form-submit]").each((function(t,n){r(n).removeAttr("data-gtm-form-submit");var i=r(n).closest("form");i.on("submit",(function(t){return e.onSubmitForm(t,{button:n,$form:i})}))}))}},{key:"onSubmitForm",value:function(t,e){this.isTestMode()&&t.preventDefault();var n=[],i=[];e.$form.find('[type="checkbox"]').each((function(t,e){if(r(e).is(":checked")){var a=r(e).attr("name"),o=r(e).next("label").text();a.indexOf("event_type")>-1&&i.push(o),a.indexOf("service_provider_category")>-1&&n.push(o)}})),r(e.button).attr("data-gtm-event-action",i.join(";")).attr("data-gtm-event-label",n.join(";"));var a=this.getTagData(e.button,"data-gtm");this.send(a)}},{key:"isTestMode",value:function(){return"development"===drupalSettings.env}},{key:"sendProd",value:function(t){this.unbindObfuscateValue(r(t.currentTarget)),this.send(this.getTagData(t.currentTarget,this.prefix))}},{key:"sendTest",value:function(t){return t.preventDefault(),this.unbindObfuscateValue(r(t.currentTarget)),this.send(this.getTagData(t.currentTarget,this.prefix)),!1}},{key:"unbindObfuscateValue",value:function(t){t.hasClass("js-obfuscate-value")&&(t.removeAttr("data-gtm"),this.$body.off("click","["+this.prefix+"]",this.clickCallback),this.$body.on("click","["+this.prefix+"]",this.clickCallback))}},{key:"send",value:function(t){window.dataLayer=window.dataLayer||[],window.dataLayer.push(t),this.isTestMode()&&console.log("gtmData",t)}},{key:"getTagData",value:function(t,e){var n={};for(var i in t.attributes){var r=t.attributes[i].nodeName;if(r&&r.indexOf(e)>-1&&r!==e){var a=r.split("-").slice(2).map((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})).join("");a=a.charAt(0).toLocaleLowerCase()+a.slice(1);var o=t.getAttribute(r);n[a]=o}}return n}}])&&i(e.prototype,n),a&&i(e,a),t}();!function(t,e){t.behaviors.gtm_tools=a.me(e)}(Drupal,drupalSettings)}]);;
vendor: 17,050 bytes, lines 2-23
2/*!
3 * jQuery Form Plugin
4 * version: 4.3.0
5 * Requires jQuery v1.7.2 or later
6 * Project repository: https://github.com/jquery-form/form
7
8 * Copyright 2017 Kevin Morris
9 * Copyright 2006 M. Alsup
10
11 * Dual licensed under the LGPL-2.1+ or MIT licenses
12 * https://github.com/jquery-form/form#license
13
14 * This library is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU Lesser General Public
16 * License as published by the Free Software Foundation; either
17 * version 2.1 of the License, or (at your option) any later version.
18 * This library is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 * Lesser General Public License for more details.
22 */
23!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});
24
25;
26/**
27* DO NOT EDIT THIS FILE.
28* See the following change record for more information,
29* https://www.drupal.org/node/2815083
30* @preserve
31**/
32(function ($, Drupal) {
33  Drupal.theme.progressBar = function (id) {
34    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>';
35  };
36  Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
37    this.id = id;
38    this.method = method || 'GET';
39    this.updateCallback = updateCallback;
40    this.errorCallback = errorCallback;
41    this.element = $(Drupal.theme('progressBar', id));
42  };
43  $.extend(Drupal.ProgressBar.prototype, {
44    setProgress: function setProgress(percentage, message, label) {
45      if (percentage >= 0 && percentage <= 100) {
46        $(this.element).find('div.progress__bar').css('width', "".concat(percentage, "%"));
47        $(this.element).find('div.progress__percentage').html("".concat(percentage, "%"));
48      }
49      $('div.progress__description', this.element).html(message);
50      $('div.progress__label', this.element).html(label);
51      if (this.updateCallback) {
52        this.updateCallback(percentage, message, this);
53      }
54    },
55    startMonitoring: function startMonitoring(uri, delay) {
56      this.delay = delay;
57      this.uri = uri;
58      this.sendPing();
59    },
60    stopMonitoring: function stopMonitoring() {
61      clearTimeout(this.timer);
62      this.uri = null;
63    },
64    sendPing: function sendPing() {
65      if (this.timer) {
66        clearTimeout(this.timer);
67      }
68      if (this.uri) {
69        var pb = this;
70        var uri = this.uri;
71        if (uri.indexOf('?') === -1) {
72          uri += '?';
73        } else {
74          uri += '&';
75        }
76        uri += '_format=json';
77        $.ajax({
78          type: this.method,
79          url: uri,
80          data: '',
81          dataType: 'json',
82          success: function success(progress) {
83            if (progress.status === 0) {
84              pb.displayError(progress.data);
85              return;
86            }
87            pb.setProgress(progress.percentage, progress.message, progress.label);
88            pb.timer = setTimeout(function () {
89              pb.sendPing();
90            }, pb.delay);
91          },
92          error: function error(xmlhttp) {
93            var e = new Drupal.AjaxError(xmlhttp, pb.uri);
94            pb.displayError("<pre>".concat(e.message, "</pre>"));
95          }
96        });
97      }
98    },
99    displayError: function displayError(string) {
100      var error = $('<div class="messages messages--error"></div>').html(string);
101      $(this.element).before(error).hide();
102      if (this.errorCallback) {
103        this.errorCallback(this);
104      }
105    }
106  });
107})(jQuery, Drupal);;
108/**
109* DO NOT EDIT THIS FILE.
110* See the following change record for more information,
111* https://www.drupal.org/node/2815083
112* @preserve
113**/
114(function ($, once) {
115  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";
116  var originalJQOnce = $.fn.once;
117  var originalJQRemoveOnce = $.fn.removeOnce;
118  $.fn.once = function jQueryOnce(id) {
119    Drupal.deprecationError({
120      message: "jQuery.once() ".concat(deprecatedMessageSuffix)
121    });
122    return originalJQOnce.apply(this, [id]);
123  };
124  $.fn.removeOnce = function jQueryRemoveOnce(id) {
125    Drupal.deprecationError({
126      message: "jQuery.removeOnce() ".concat(deprecatedMessageSuffix)
127    });
128    return originalJQRemoveOnce.apply(this, [id]);
129  };
130  var drupalOnce = once;
131  function augmentedOnce(id, selector, context) {
132    originalJQOnce.apply($(selector, context), [id]);
133    return drupalOnce(id, selector, context);
134  }
135  function remove(id, selector, context) {
136    originalJQRemoveOnce.apply($(selector, context), [id]);
137    return drupalOnce.remove(id, selector, context);
138  }
139  window.once = Object.assign(augmentedOnce, drupalOnce, {
140    remove: remove
141  });
142})(jQuery, once);;
143loadjs=function(){var h=function(){},c={},u={},f={};function o(e,n){if(e){var r=f[e];if(u[e]=n,r)for(;r.length;)r[0](e,n),r.splice(0,1)}}function l(e,n){e.call&&(e={success:e}),n.length?(e.error||h)(n):(e.success||h)(e)}function d(r,t,s,i){var c,o,e=document,n=s.async,u=(s.numRetries||0)+1,f=s.before||h,l=r.replace(/[\?|#].*$/,""),a=r.replace(/^(css|img)!/,"");i=i||0,/(^css!|\.css$)/.test(l)?((o=e.createElement("link")).rel="stylesheet",o.href=a,(c="hideFocus"in o)&&o.relList&&(c=0,o.rel="preload",o.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(l)?(o=e.createElement("img")).src=a:((o=e.createElement("script")).src=r,o.async=void 0===n||n),!(o.onload=o.onerror=o.onbeforeload=function(e){var n=e.type[0];if(c)try{o.sheet.cssText.length||(n="e")}catch(e){18!=e.code&&(n="e")}if("e"==n){if((i+=1)<u)return d(r,t,s,i)}else if("preload"==o.rel&&"style"==o.as)return o.rel="stylesheet";t(r,n,e.defaultPrevented)})!==f(r,o)&&e.head.appendChild(o)}function r(e,n,r){var t,s;if(n&&n.trim&&(t=n),s=(t?r:n)||{},t){if(t in c)throw"LoadJS";c[t]=!0}function i(n,r){!function(e,t,n){var r,s,i=(e=e.push?e:[e]).length,c=i,o=[];for(r=function(e,n,r){if("e"==n&&o.push(e),"b"==n){if(!r)return;o.push(e)}--i||t(o)},s=0;s<c;s++)d(e[s],r,n)}(e,function(e){l(s,e),n&&l({success:n,error:r},e),o(t,e)},s)}if(s.returnPromise)return new Promise(i);i()}return r.ready=function(e,n){return function(e,r){e=e.push?e:[e];var n,t,s,i=[],c=e.length,o=c;
143for(n=function(e,n){n.length&&i.push(e),--o||r(i)};c--;)t=e[c],(s=u[t])?n(t,s):(f[t]=f[t]||[]).push(n)}(e,function(e){l(n,e)}),r},r.done=function(e){o(e,[])},r.reset=function(){c={},u={},f={}},r.isDefined=function(e){return e in c},r}();;
144/**
145* DO NOT EDIT THIS FILE.
146* See the following change record for more information,
147* https://www.drupal.org/node/2815083
148* @preserve
149**/
150(function (Drupal) {
151  Drupal.behaviors.responsiveImageAJAX = {
152    attach: function attach() {
153      if (window.picturefill) {
154        window.picturefill();
155      }
156    }
157  };
158})(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**/
165function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
166function _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."); }
167function _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); }
168function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
169function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
170function _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; }
171(function ($, window, Drupal, drupalSettings, loadjs, _ref) {
172  var isFocusable = _ref.isFocusable,
173    tabbable = _ref.tabbable;
174  Drupal.behaviors.AJAX = {
175    attach: function attach(context, settings) {
176      function loadAjaxBehavior(base) {
177        var elementSettings = settings.ajax[base];
178        if (typeof elementSettings.selector === 'undefined') {
179          elementSettings.selector = "#".concat(base);
180        }
181        once('drupal-ajax', $(elementSettings.selector)).forEach(function (el) {
182          elementSettings.element = el;
183          elementSettings.base = base;
184          Drupal.ajax(elementSettings);
185        });
186      }
187      Object.keys(settings.ajax || {}).forEach(function (base) {
188        return loadAjaxBehavior(base);
189      });
190      Drupal.ajax.bindAjaxLinks(document.body);
191      once('ajax', '.use-ajax-submit').forEach(function (el) {
192        var elementSettings = {};
193        elementSettings.url = $(el.form).attr('action');
194        elementSettings.setClick = true;
195        elementSettings.event = 'click';
196        elementSettings.progress = {
197          type: 'throbber'
198        };
199        elementSettings.base = el.id;
200        elementSettings.element = el;
201        Drupal.ajax(elementSettings);
202      });
203    },
204    detach: function detach(context, settings, trigger) {
205      if (trigger === 'unload') {
206        Drupal.ajax.expired().forEach(function (instance) {
207          Drupal.ajax.instances[instance.instanceIndex] = null;
208        });
209      }
210    }
211  };
212  Drupal.AjaxError = function (xmlhttp, uri, customMessage) {
213    var statusCode;
214    var statusText;
215    var responseText;
216    if (xmlhttp.status) {
217      statusCode = "\n".concat(Drupal.t('An AJAX HTTP error occurred.'), "\n").concat(Drupal.t('HTTP Result Code: !status', {
218        '!status': xmlhttp.status
219      }));
220    } else {
221      statusCode = "\n".concat(Drupal.t('An AJAX HTTP request terminated abnormally.'));
222    }
223    statusCode += "\n".concat(Drupal.t('Debugging information follows.'));
224    var pathText = "\n".concat(Drupal.t('Path: !uri', {
225      '!uri': uri
226    }));
227    statusText = '';
228    try {
229      statusText = "\n".concat(Drupal.t('StatusText: !statusText', {
230        '!statusText': xmlhttp.statusText.trim()
231      }));
232    } catch (e) {}
233    responseText = '';
234    try {
235      responseText = "\n".concat(Drupal.t('ResponseText: !responseText', {
236        '!responseText': xmlhttp.responseText.trim()
237      }));
238    } catch (e) {}
239    responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, '');
240    responseText = responseText.replace(/[\n]+\s+/g, '\n');
241    var readyStateText = xmlhttp.status === 0 ? "\n".concat(Drupal.t('ReadyState: !readyState', {
242      '!readyState': xmlhttp.readyState
243    })) : '';
244    customMessage = customMessage ? "\n".concat(Drupal.t('CustomMessage: !customMessage', {
245      '!customMessage': customMessage
246    })) : '';
247    this.message = statusCode + pathText + statusText + customMessage + responseText + readyStateText;
248    this.name = 'AjaxError';
249  };
250  Drupal.AjaxError.prototype = new Error();
251  Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
252  Drupal.ajax = function (settings) {
253    if (arguments.length !== 1) {
254      throw new Error('Drupal.ajax() function must be called with one configuration object only');
255    }
256    var base = settings.base || false;
257    var element = settings.element || false;
258    delete settings.base;
259    delete settings.element;
260    if (!settings.progress && !element) {
261      settings.progress = false;
262    }
263    var ajax = new Drupal.Ajax(base, element, settings);
264    ajax.instanceIndex = Drupal.ajax.instances.length;
265    Drupal.ajax.instances.push(ajax);
266    return ajax;
267  };
268  Drupal.ajax.instances = [];
269  Drupal.ajax.expired = function () {
270    return Drupal.ajax.instances.filter(function (instance) {
271      return instance && instance.element !== false && !document.body.contains(instance.element);
272    });
273  };
274  Drupal.ajax.bindAjaxLinks = function (element) {
275    once('ajax', '.use-ajax', element).forEach(function (ajaxLink) {
276      var $linkElement = $(ajaxLink);
277      var elementSettings = {
278        progress: {
279          type: 'throbber'
280        },
281        dialogType: $linkElement.data('dialog-type'),
282        dialog: $linkElement.data('dialog-options'),
283        dialogRenderer: $linkElement.data('dialog-renderer'),
284        base: $linkElement.attr('id'),
285        element: ajaxLink
286      };
287      var href = $linkElement.attr('href');
288      if (href) {
289        elementSettings.url = href;
290        elementSettings.event = 'click';
291      }
292      Drupal.ajax(elementSettings);
293    });
294  };
295  Drupal.Ajax = function (base, element, elementSettings) {
296    var defaults = {
297      event: element ? 'mousedown' : null,
298      keypress: true,
299      selector: base ? "#".concat(base) : null,
300      effect: 'none',
301      speed: 'none',
302      method: 'replaceWith',
303      progress: {
304        type: 'throbber',
305        message: Drupal.t('Please wait...')
306      },
307      submit: {
308        js: true
309      }
310    };
311    $.extend(this, defaults, elementSettings);
312    this.commands = new Drupal.AjaxCommands();
313    this.instanceIndex = false;
314    if (this.wrapper) {
315      this.wrapper = "#".concat(this.wrapper);
316    }
317    this.element = element;
318    this.element_settings = elementSettings;
319    this.elementSettings = elementSettings;
320    if (this.element && this.element.form) {
321      this.$form = $(this.element.form);
322    }
323    if (!this.url) {
324      var $element = $(this.element);
325      if ($element.is('a')) {
326        this.url = $element.attr('href');
327      } else if (this.element && element.form) {
328        this.url = this.$form.attr('action');
329      }
330    }
331    var originalUrl = this.url;
332    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/, '/ajax$1');
333    if (drupalSettings.ajaxTrustedUrl[originalUrl]) {
334      drupalSettings.ajaxTrustedUrl[this.url] = true;
335    }
336    var ajax = this;
337    ajax.options = {
338      url: ajax.url,
339      data: ajax.submit,
340      isInProgress: function isInProgress() {
341        return ajax.ajaxing;
342      },
343      beforeSerialize: function beforeSerialize(elementSettings, options) {
344        return ajax.beforeSerialize(elementSettings, options);
345      },
346      beforeSubmit: function beforeSubmit(formValues, elementSettings, options) {
347        ajax.ajaxing = true;
348        return ajax.beforeSubmit(formValues, elementSettings, options);
349      },
350      beforeSend: function beforeSend(xmlhttprequest, options) {
351        ajax.ajaxing = true;
352        return ajax.beforeSend(xmlhttprequest, options);
353      },
354      success: function success(response, status, xmlhttprequest) {
355        var _this = this;
356        if (typeof response === 'string') {
357          response = $.parseJSON(response);
358        }
359        if (response !== null && !drupalSettings.ajaxTrustedUrl[ajax.url]) {
360          if (xmlhttprequest.getResponseHeader('X-Drupal-Ajax-Token') !== '1') {
361            var customMessage = Drupal.t('The response failed verification so will not be processed.');
362            return ajax.error(xmlhttprequest, ajax.url, customMessage);
363          }
364        }
365        return Promise.resolve(ajax.success(response, status)).then(function () {
366          ajax.ajaxing = false;
367          $(document).trigger('ajaxSuccess', [xmlhttprequest, _this]);
368          $(document).trigger('ajaxComplete', [xmlhttprequest, _this]);
369          if (--$.active === 0) {
370            $(document).trigger('ajaxStop');
371          }
372        });
373      },
374      error: function error(xmlhttprequest, status, _error) {
375        ajax.ajaxing = false;
376      },
377      complete: function complete(xmlhttprequest, status) {
378        if (status === 'error' || status === 'parsererror') {
379          return ajax.error(xmlhttprequest, ajax.url);
380        }
381      },
382      dataType: 'json',
383      jsonp: false,
384      type: 'POST'
385    };
386    if (elementSettings.dialog) {
387      ajax.options.data.dialogOptions = elementSettings.dialog;
388    }
389    if (ajax.options.url.indexOf('?') === -1) {
390      ajax.options.url += '?';
391    } else {
392      ajax.options.url += '&';
393    }
394    var wrapper = "drupal_".concat(elementSettings.dialogType || 'ajax');
395    if (elementSettings.dialogRenderer) {
396      wrapper += ".".concat(elementSettings.dialogRenderer);
397    }
398    ajax.options.url += "".concat(Drupal.ajax.WRAPPER_FORMAT, "=").concat(wrapper);
399    $(ajax.element).on(elementSettings.event, function (event) {
400      if (!drupalSettings.ajaxTrustedUrl[ajax.url] && !Drupal.url.isLocal(ajax.url)) {
401        throw new Error(Drupal.t('The callback URL is not local and n
401ot trusted: !url', {
402          '!url': ajax.url
403        }));
404      }
405      return ajax.eventResponse(this, event);
406    });
407    if (elementSettings.keypress) {
408      $(ajax.element).on('keypress', function (event) {
409        return ajax.keypressResponse(this, event);
410      });
411    }
412    if (elementSettings.prevent) {
413      $(ajax.element).on(elementSettings.prevent, false);
414    }
415  };
416  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
417  Drupal.Ajax.AJAX_REQUEST_PARAMETER = '_drupal_ajax';
418  Drupal.Ajax.prototype.execute = function () {
419    if (this.ajaxing) {
420      return;
421    }
422    try {
423      this.beforeSerialize(this.element, this.options);
424      return $.ajax(this.options);
425    } catch (e) {
426      this.ajaxing = false;
427      window.alert("An error occurred while attempting to process ".concat(this.options.url, ": ").concat(e.message));
428      return $.Deferred().reject();
429    }
430  };
431  Drupal.Ajax.prototype.keypressResponse = function (element, event) {
432    var ajax = this;
433    if (event.which === 13 || event.which === 32 && element.type !== 'text' && element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number') {
434      event.preventDefault();
435      event.stopPropagation();
436      $(element).trigger(ajax.elementSettings.event);
437    }
438  };
439  Drupal.Ajax.prototype.eventResponse = function (element, event) {
440    event.preventDefault();
441    event.stopPropagation();
442    var ajax = this;
443    if (ajax.ajaxing) {
444      return;
445    }
446    try {
447      if (ajax.$form) {
448        if (ajax.setClick) {
449          element.form.clk = element;
450        }
451        ajax.$form.ajaxSubmit(ajax.options);
452      } else {
453        ajax.beforeSerialize(ajax.element, ajax.options);
454        $.ajax(ajax.options);
455      }
456    } catch (e) {
457      ajax.ajaxing = false;
458      window.alert("An error occurred while attempting to process ".concat(ajax.options.url, ": ").concat(e.message));
459    }
460  };
461  Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
462    if (this.$form && document.body.contains(this.$form.get(0))) {
463      var settings = this.settings || drupalSettings;
464      Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
465    }
466    options.data[Drupal.Ajax.AJAX_REQUEST_PARAMETER] = 1;
467    var pageState = drupalSettings.ajaxPageState;
468    options.data['ajax_page_state[theme]'] = pageState.theme;
469    options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
470    options.data['ajax_page_state[libraries]'] = pageState.libraries;
471  };
472  Drupal.Ajax.prototype.beforeSubmit = function (formValues, element, options) {};
473  Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
474    if (this.$form) {
475      options.extraData = options.extraData || {};
476      options.extraData.ajax_iframe_upload = '1';
477      var v = $.fieldValue(this.element);
478      if (v !== null) {
479        options.extraData[this.element.name] = v;
480      }
481    }
482    $(this.element).prop('disabled', true);
483    if (!this.progress || !this.progress.type) {
484      return;
485    }
486    var progressIndicatorMethod = "setProgressIndicator".concat(this.progress.type.slice(0, 1).toUpperCase()).concat(this.progress.type.slice(1).toLowerCase());
487    if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
488      this[progressIndicatorMethod].call(this);
489    }
490  };
491  Drupal.theme.ajaxProgressThrobber = function (message) {
492    var messageMarkup = typeof message === 'string' ? Drupal.theme('ajaxProgressMessage', message) : '';
493    var throbber = '<div class="throbber">&nbsp;</div>';
494    return "<div class=\"ajax-progress ajax-progress-throbber\">".concat(throbber).concat(messageMarkup, "</div>");
495  };
496  Drupal.theme.ajaxProgressIndicatorFullscreen = function () {
497    return '<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>';
498  };
499  Drupal.theme.ajaxProgressMessage = function (message) {
500    return "<div class=\"message\">".concat(message, "</div>");
501  };
502  Drupal.theme.ajaxProgressBar = function ($element) {
503    return $('<div class="ajax-progress ajax-progress-bar"></div>').append($element);
504  };
505  Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
506    var progressBar = new Drupal.ProgressBar("ajax-progress-".concat(this.element.i
506d), $.noop, this.progress.method, $.noop);
507    if (this.progress.message) {
508      progressBar.setProgress(-1, this.progress.message);
509    }
510    if (this.progress.url) {
511      progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
512    }
513    this.progress.element = $(Drupal.theme('ajaxProgressBar', progressBar.element));
514    this.progress.object = progressBar;
515    $(this.element).after(this.progress.element);
516  };
517  Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
518    this.progress.element = $(Drupal.theme('ajaxProgressThrobber', this.progress.message));
519    $(this.element).after(this.progress.element);
520  };
521  Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
522    this.progress.element = $(Drupal.theme('ajaxProgressIndicatorFullscreen'));
523    $('body').append(this.progress.element);
524  };
525  Drupal.Ajax.prototype.commandExecutionQueue = function (response, status) {
526    var _this2 = this;
527    var ajaxCommands = this.commands;
528    return Object.keys(response || {}).reduce(function (executionQueue, key) {
529      return executionQueue.then(function () {
530        var command = response[key].command;
531        if (command && ajaxCommands[command]) {
532          return ajaxCommands[command](_this2, response[key], status);
533        }
534      });
535    }, Promise.resolve());
536  };
537  Drupal.Ajax.prototype.success = function (response, status) {
538    var _this3 = this;
539    if (this.progress.element) {
540      $(this.progress.element).remove();
541    }
542    if (this.progress.object) {
543      this.progress.object.stopMonitoring();
544    }
545    $(this.element).prop('disabled', false);
546    var elementParents = $(this.element).parents('[data-drupal-selector]').addBack().toArray();
547    var focusChanged = Object.keys(response || {}).some(function (key) {
548      var _response$key = response[key],
549        command = _response$key.command,
550        method = _response$key.method;
551      return command === 'focusFirst' || command === 'invoke' && method === 'focus';
552    });
553    return this.commandExecutionQueue(response, status).then(function () {
554      if (!focusChanged && _this3.element && !$(_this3.element).data('disable-refocus')) {
555        var target = false;
556        for (var n = elementParents.length - 1; !target && n >= 0; n--) {
557          target = document.querySelector("[data-drupal-selector=\"".concat(elementParents[n].getAttribute('data-drupal-selector'), "\"]"));
558        }
559        if (target) {
560          $(target).trigger('focus');
561        }
562      }
563      if (_this3.$form && document.body.contains(_this3.$form.get(0))) {
564        var settings = _this3.settings || drupalSettings;
565        Drupal.attachBehaviors(_this3.$form.get(0), settings);
566      }
567      _this3.settings = null;
568    }).catch(function (error) {
569      return console.error(Drupal.t('An error occurred during the execution of the Ajax response: !error', {
570        '!error': error
571      }));
572    });
573  };
574  Drupal.Ajax.prototype.getEffect = function (response) {
575    var type = response.effect || this.effect;
576    var speed = response.speed || this.speed;
577    var effect = {};
578    if (type === 'none') {
579      effect.showEffect = 'show';
580      effect.hideEffect = 'hide';
581      effect.showSpeed = '';
582    } else if (type === 'fade') {
583      effect.showEffect = 'fadeIn';
584      effect.hideEffect = 'fadeOut';
585      effect.showSpeed = speed;
586    } else {
587      effect.showEffect = "".concat(type, "Toggle");
588      effect.hideEffect = "".concat(type, "Toggle");
589      effect.showSpeed = speed;
590    }
591    return effect;
592  };
593  Drupal.Ajax.prototype.error = function (xmlhttprequest, uri, customMessage) {
594    if (this.progress.element) {
595      $(this.progress.element).remove();
596    }
597    if (this.progress.object) {
598      this.progress.object.stopMonitoring();
599    }
600    $(this.wrapper).show();
601    $(this.element).prop('disabled', false);
602    if (this.$form && document.body.contains(this.$form.get(0))) {
603      var settings = this.settings || drupalSettings;
604      Drupal.attachBehaviors(this.$form.get(0), settings);
605    }
606    throw new Drupal.AjaxError(xmlhttprequest, uri, customMessage);
607  };
608  Drupal.theme.ajaxWrapperNewContent = function ($newContent, ajax, response) {
609    return (response.effect || ajax.effect) !== 'none' && $newContent.filter(function (i) {
610      return !($newContent[i].nodeName === '#comment' || $newContent[i].nodeName === '#text' && /^(\s|\n|\r)*$/.test($newContent[i].textContent));
611    }).length > 1 ? Drupal.theme('ajaxWrapperMultipleRootElements', $newContent) : $newContent;
612  };
613  Drupal.theme.ajaxWrapperMultipleRootElements = function ($elements) {
614    return $('<div></div>').append($elements);
615  };
616  Drupal.AjaxCommands = function () {};
617  Drupal.AjaxCommands.prototype = {
618    insert: function insert(ajax, response) {
619      var $wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
620      var method = response.method || ajax.method;
621      var effect = ajax.getEffect(response);
622      var settings = response.settings || ajax.settings || drupalSettings;
623      var $newContent = $($.parseHTML(response.data, document, true));
624      $newContent = Drupal.theme('ajaxWrapperNewContent', $newContent, ajax, response);
625      switch (method) {
626        case 'html':
627        case 'replaceWith':
628        case 'replaceAll':
629        case 'empty':
630        case 'remove':
631          Drupal.detachBehaviors($wrapper.get(0), settings);
632          break;
633        default:
634          break;
635      }
636      $wrapper[method]($newContent);
637      if (effect.showEffect !== 'show') {
638        $newContent.hide();
639      }
640      var $ajaxNewContent = $newContent.find('.ajax-new-content');
641      if ($ajaxNewContent.length) {
642        $ajaxNewContent.hide();
643        $newContent.show();
644        $ajaxNewContent[effect.showEffect](effect.showSpeed);
645      } else if (effect.showEffect !== 'show') {
646        $newContent[effect.showEffect](effect.showSpeed);
647      }
648      if ($newContent.parents('html').length) {
649        $newContent.each(function (index, element) {
650          if (element.nodeType === Node.ELEMENT_NODE) {
651            Drupal.attachBehaviors(element, settings);
652          }
653        });
654      }
655    },
656    remove: function remove(ajax, response, status) {
657      var settings = response.settings || ajax.settings || drupalSettings;
658      $(response.selector).each(function () {
659        Drupal.detachBehaviors(this, settings);
660      }).remove();
661    },
662    changed: function changed(ajax, response, status) {
663      var $element = $(response.selector);
664      if (!$element.hasClass('ajax-changed')) {
665        $element.addClass('ajax-changed');
666        if (response.asterisk) {
667          $element.find(response.asterisk).append(" <abbr class=\"ajax-changed\" title=\"".concat(Drupal.t('Changed'), "\">*</abbr> "));
668        }
669      }
670    },
671    alert: function alert(ajax, response, status) {
672      window.alert(response.text);
673    },
674    announce: function announce(ajax, response) {
675      if (response.priority) {
676        Drupal.announce(response.text, response.priority);
677      } else {
678        Drupal.announce(response.text);
679      }
680    },
681    redirect: function redirect(ajax, response, status) {
682      window.location = response.url;
683    },
684    css: function css(ajax, response, status) {
685      $(response.selector).css(response.argument);
686    },
687    settings: function settings(ajax, response, status) {
688      var ajaxSettings = drupalSettings.ajax;
689      if (ajaxSettings) {
690        Drupal.ajax.expired().forEach(function (instance) {
691          if (instance.selector) {
692            var selector = instance.selector.replace('#', '');
693            if (selector in ajaxSettings) {
694              delete ajaxSettings[selector];
695            }
696          }
697        });
698      }
699      if (response.merge) {
700        $.extend(true, drupalSettings, response.settings);
701      } else {
702        ajax.settings = response.settings;
703      }
704    },
705    data: function data(ajax, response, status) {
706      $(response.selector).data(response.name, response.value);
707    },
708    focusFirst: function focusFirst(ajax, response, status) {
709      var focusChanged = false;
710      var container = document.querySelector(response.selector);
711      if (container) {
712        var tabbableElements = tabbable(container);
713        if (tabbableElements.length) {
714          tabbableElements[0].focus();
715          focusChanged = true;
716        } else if (isFocusable(container)) {
717          container.focus();
718          focusChanged = true;
719        }
720      }
721      if (ajax.hasOwnProperty('element') && !focusChanged) {
722        ajax.element.focus();
723      }
724    },
725    invoke: function invoke(ajax, response, status) {
726      var $element = $(response.selector);
727      $element[response.method].apply($element, _toConsumableArray(response.args));
728    },
729    restripe: function restripe(ajax, response, status) {
730      $(response.selector).find('> tbody > tr:visible, > tr:visible').removeClass('odd even').filter(':even').addClass('odd').end().filter(':odd').addClass('even');
731    },
732    update_build_id: function update_build_id(ajax, response, status) {
733      document.querySelectorAll("input[name=\"form_build_id\"][value=\"".concat(response.old, "\"]")).forEach(function (item) {
734        item.value = response.new;
735      });
736    },
737    add_css: function add_css(ajax, response, status) {
738      $('head').prepend(response.data);
739    },
740    message: function message(ajax, response) {
741      var messages = new Drupal.Message(document.querySelector(response.messageWrapperQuerySelector));
742      if (response.clearPrevious) {
743        messages.clear();
744      }
745      messages.add(response.message, response.messageOptions);
746    },
747    add_js: function add_js(ajax, response, status) {
748      var parentEl = document.querySelector(response.selector || 'body');
749      var settings = ajax.settings || drupalSettings;
750      var allUniqueBundleIds = response.data.map(function (script) {
751        var uniqueBundleId = script.src + ajax.instanceIndex;
752        loadjs(script.src, uniqueBundleId, {
753          async: false,
754          before: function before(path, scriptEl) {
755            Object.keys(script).forEach(function (attributeKey) {
756              scriptEl.setAttribute(attributeKey, script[attributeKey]);
757            });
758            parentEl.appendChild(scriptEl);
759            return false;
760          }
761        });
762        return uniqueBundleId;
763      });
764      return new Promise(function (resolve, reject) {
765        loadjs.ready(allUniqueBundleIds, {
766          success: function success() {
767            Drupal.attachBehaviors(parentEl, settings);
768            resolve();
769          },
770          error: function error(depsNotFound) {
771            var message = Drupal.t("The following files could not be loaded: @dependencies", {
772              '@dependencies': depsNotFound.join(', ')
773            });
774            reject(message);
775          }
776        });
777      });
778    }
779  };
780  var stopEvent = function stopEvent(xhr, settings) {
781    return xhr.getResponseHeader('X-Drupal-Ajax-Token') === '1' && settings.isInProgress && settings.isInProgress();
782  };
783  $.extend(true, $.event.special, {
784    ajaxSuccess: {
785      trigger: function trigger(event, xhr, settings) {
786        if (stopEvent(xhr, settings)) {
787          return false;
788        }
789      }
790    },
791    ajaxComplete: {
792      trigger: function trigger(event, xhr, settings) {
793        if (stopEvent(xhr, settings)) {
794          $.active++;
795          return false;
796        }
797      }
798    }
799  });
800})(jQuery, window, Drupal, drupalSettings, loadjs, window.tabbable);;
801/**
802* DO NOT EDIT THIS FILE.
803* See the following change record for more information,
804* https://www.drupal.org/node/2815083
805* @preserve
806**/
807(function ($, Drupal, _ref) {
808  var isTabbable = _ref.isTabbable;
809  $.extend($.expr[':'], {
810    tabbable: function tabbable(element) {
811      Drupal.deprecationError({
812        message: 'The :tabbable selector is deprecated in Drupal 9.2.0 and will be removed in Drupal 11.0.0. Use the core/tabbable library instead. See https://www.drupal.org/node/3183730'
813      });
814      if (element.tagName === 'SUMMARY' || element.tagName === 'DETAILS') {
815        var tabIndex = element.getAttribute('tabIndex');
816        if (tabIndex === null || tabIndex < 0) {
817          return false;
818        }
819      }
820      return isTabbable(element);
821    }
822  });
823})(jQuery, Drupal, window.tabbable);;
824/**
825* DO NOT EDIT THIS FILE.
826* See the following change record for more information,
827* https://www.drupal.org/node/2815083
828* @preserve
829**/
830(function ($) {
831  var cachedScrollbarWidth = null;
832  var max = Math.max,
833    abs = Math.abs;
834  var regexHorizontal = /left|center|right/;
835  var regexVertical = /top|center|bottom/;
836  var regexOffset = /[+-]\d+(\.[\d]+)?%?/;
837  var regexPosition = /^\w+/;
838  var regexPercent = /%$/;
839  var _position = $.fn.position;
840  function getOffsets(offsets, width, height) {
841    return [parseFloat(offsets[0]) * (regexPercent.test(offsets[0]) ? width / 100 : 1), parseFloat(offsets[1]) * (regexPercent.test(offsets[1]) ? height / 100 : 1)];
842  }
843  function parseCss(element, property) {
844    return parseInt($.css(element, property), 10) || 0;
845  }
846  function getDimensions(elem) {
847    var raw = elem[0];
848    if (raw.nodeType === 9) {
849      return {
850        width: elem.width(),
851        height: elem.height(),
852        offset: {
853          top: 0,
854          left: 0
855        }
856      };
857    }
858    if ($.isWindow(raw)) {
859      return {
860        width: elem.width(),
861        height: elem.height(),
862        offset: {
863          top: elem.scrollTop(),
864          left: elem.scrollLeft()
865        }
866      };
867    }
868    if (raw.preventDefault) {
869      return {
870        width: 0,
871        height: 0,
872        offset: {
873          top: raw.pageY,
874          left: raw.pageX
875        }
876      };
877    }
878    return {
879      width: elem.outerWidth(),
880      height: elem.outerHeight(),
881      offset: elem.offset()
882    };
883  }
884  var collisions = {
885    fit: {
886      left: function left(position, data) {
887        var within = data.within;
888        var withinOffset = within.isWindow ? within.scrollLeft : within.offset.left;
889        var outerWidth = within.width;
890        var collisionPosLeft = position.left - data.collisionPosition.marginLeft;
891        var overLeft = withinOffset - collisionPosLeft;
892        var overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset;
893        var newOverRight;
894        if (data.collisionWidth > outerWidth) {
895          if (overLeft > 0 && overRight <= 0) {
896            newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
897            position.left += overLeft - newOverRight;
898          } else if (overRight > 0 && overLeft <= 0) {
899            position.left = withinOffset;
900          } else if (overLeft > overRight) {
901            position.left = withinOffset + outerWidth - data.collisionWidth;
902          } else {
903            position.left = withinOffset;
904          }
905        } else if (overLeft > 0) {
906          position.left += overLeft;
907        } else if (overRight > 0) {
908          position.left -= overRight;
909        } else {
910          position.left = max(position.left - collisionPosLeft, position.left);
911        }
912      },
913      top: function top(position, data) {
914        var within = data.within;
915        var withinOffset = within.isWindow ? within.scrollTop : within.offset.top;
916        var outerHeight = data.within.height;
917        var collisionPosTop = position.top - data.collisionPosition.marginTop;
918        var overTop = withinOffset - collisionPosTop;
919        var overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset;
920        var newOverBottom;
921        if (data.collisionHeight > outerHeight) {
922          if (overTop > 0 && overBottom <= 0) {
923            newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
924            position.top += overTop - newOverBottom;
925          } else if (overBottom > 0 && overTop <= 0) {
926            position.top = withinOffset;
927          } else if (overTop > overBottom) {
928            position.top = withinOffset + outerHeight - data.collisionHeight;
929          } else {
930            position.top = withinOffset;
931          }
932        } else if (overTop > 0) {
933          position.top += overTop;
934        } else if (overBottom > 0) {
935          position.top -= overBottom;
936        } else {
937          position.top = max(position.top - collisionPosTop, position.top);
938        }
939      }
940    },
941    flip: {
942      left: function left(position, data) {
943        var within = data.within;
944        var withinOffset = within.offset.left + within.scrollLeft;
945        var outerWidth = within.width;
946        var offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left;
947        var collisionPosLeft = position.left - data.collisionPosition.marginLeft;
948        var overLeft = collisionPosLeft - offsetLeft;
949        var overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft;
950        var myOffset = data.my[0] === 'left' ? -data.elemWidth : data.my[0] === 'right' ? data.elemWidth : 0;
951        var atOffset = data.at[0] === 'left' ? data.targetWidth : data.at[0] === 'right' ? -data.targetWidth : 0;
952        var offset = -2 * data.offset[0];
953        var newOverRight;
954        var newOverLeft;
955        if (overLeft < 0) {
956          newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
957          if (newOverRight < 0 || newOverRight < abs(overLeft)) {
958            position.left += myOffset + atOffset + offset;
959          }
960        } else if (overRight > 0) {
961          newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
962          if (newOverLeft > 0 || abs(newOverLeft) < overRight) {
963            position.left += myOffset + atOffset + offset;
964          }
965        }
966      },
967      top: function top(position, data) {
968        var within = data.within;
969        var withinOffset = within.offset.top + within.scrollTop;
970        var outerHeight = within.height;
971        var offsetTop = within.isWindow ? within.scrollTop : within.offset.top;
972        var collisionPosTop = position.top - data.collisionPosition.marginTop;
973        var overTop = collisionPosTop - offsetTop;
974        var overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop;
975        var top = data.my[1] === 'top';
976        var myOffset = top ? -data.elemHeight : data.my[1] === 'bottom' ? data.elemHeight : 0;
977        var atOffset = data.at[1] === 'top' ? data.targetHeight : data.at[1] === 'bottom' ? -data.targetHeight : 0;
978        var offset = -2 * data.offset[1];
979        var newOverTop;
980        var newOverBottom;
981        if (overTop < 0) {
982          newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
983          if (newOverBottom < 0 || newOverBottom < abs(overTop)) {
984            position.top += myOffset + atOffset + offset;
985          }
986        } else if (overBottom > 0) {
987          newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
988          if (newOverTop > 0 || abs(newOverTop) < overBottom) {
989            position.top += myOffset + atOffset + offset;
990          }
991        }
992      }
993    },
994    flipfit: {
995      left: function left() {
996        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
997          args[_key] = arguments[_key];
998        }
999        collisions.flip.left.apply(this, args);
1000        collisions.fit.left.apply(this, args);
1001      },
1002      top: function top() {
1003        for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1004          args[_key2] = arguments[_key2];
1005        }
1006        collisions.flip.top.apply(this, args);
1007        collisions.fit.top.apply(this, args);
1008      }
1009    }
1010  };
1011  $.position = {
1012    scrollbarWidth: function scrollbarWidth() {
1013      if (cachedScrollbarWidth !== undefined) {
1014        return cachedScrollbarWidth;
1015      }
1016      var div = $('<div ' + "style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>" + "<div style='height:100px;width:auto;'></div></div>");
1017      var innerDiv = div.children()[0];
1018      $('body').append(div);
1019      var w1 = innerDiv.offsetWidth;
1020      div.css('overflow', 'scroll');
1021      var w2 = innerDiv.offsetWidth;
1022      if (w1 === w2) {
1023        w2 = div[0].clientWidth;
1024      }
1025      div.remove();
1026      cachedScrollbarWidth = w1 - w2;
1027      return cachedScrollbarWidth;
1028    },
1029    getScrollInfo: function getScrollInfo(within) {
1030      var overflowX = within.isWindow || within.isDocument ? '' : within.element.css('overflow-x');
1031      var overflowY = within.isWindow || within.isDocument ? '' : within.element.css('overflow-y');
1032      var hasOverflowX = overflowX === 'scroll' || overflowX === 'auto' && within.width < within.element[0].scrollWidth;
1033      var hasOverflowY = overflowY === 'scroll' || overflowY === 'auto' && within.height < within.element[0].scrollHeight;
1034      return {
1035        width: hasOverflowY ? $.position.scrollbarWidth() : 0,
1036        height: hasOverflowX ? $.position.scrollbarWidth() : 0
1037      };
1038    },
1039    getWithinInfo: function getWithinInfo(element) {
1040      var withinElement = $(element || window);
1041      var isWindow = $.isWindow(withinElement[0]);
1042      var isDocument = !!withinElement[0] && withinElement[0].nodeType === 9;
1043      var hasOffset = !isWindow && !isDocument;
1044      return {
1045        element: withinElement,
1046        isWindow: isWindow,
1047        isDocument: isDocument,
1048        offset: hasOffset ? $(element).offset() : {
1049          left: 0,
1050          top: 0
1051        },
1052        scrollLeft: withinElement.scrollLeft(),
1053        scrollTop: withinElement.scrollTop(),
1054        width: withinElement.outerWidth(),
1055        height: withinElement.outerHeight()
1056      };
1057    }
1058  };
1059  $.fn.position = function (options) {
1060    if (!options || !options.of) {
1061      return _position.apply(this, arguments);
1062    }
1063    options = $.extend({}, options);
1064    var within = $.position.getWithinInfo(options.within);
1065    var scrollInfo = $.position.getScrollInfo(within);
1066    var collision = (options.collision || 'flip').split(' ');
1067    var offsets = {};
1068    var target = typeof options.of === 'string' ? $(document).find(options.of) : $(options.of);
1069    var dimensions = getDimensions(target);
1070    var targetWidth = dimensions.width;
1071    var targetHeight = dimensions.height;
1072    var targetOffset = dimensions.offset;
1073    if (target[0].preventDefault) {
1074      options.at = 'left top';
1075    }
1076    var basePosition = $.extend({}, targetOffset);
1077    $.each(['my', 'at'], function () {
1078      var pos = (options[this] || '').split(' ');
1079      if (pos.length === 1) {
1080        pos = regexHorizontal.test(pos[0]) ? pos.concat(['center']) : regexVertical.test(pos[0]) ? ['center'].concat(pos) : ['center', 'center'];
1081      }
1082      pos[0] = regexHorizontal.test(pos[0]) ? pos[0] : 'center';
1083      pos[1] = regexVertical.test(pos[1]) ? pos[1] : 'center';
1084      var horizontalOffset = regexOffset.exec(pos[0]);
1085      var verticalOffset = regexOffset.exec(pos[1]);
1086      offsets[this] = [horizontalOffset ? horizontalOffset[0] : 0, verticalOffset ? verticalOffset[0] : 0];
1087      options[this] = [regexPosition.exec(pos[0])[0], regexPosition.exec(pos[1])[0]];
1088    });
1089    if (collision.length === 1) {
1090      collision[1] = collision[0];
1091    }
1092    if (options.at[0] === 'right') {
1093      basePosition.left += targetWidth;
1094    } else if (options.at[0] === 'center') {
1095      basePosition.left += targetWidth / 2;
1096    }
1097    if (options.at[1] === 'bottom') {
1098      basePosition.top += targetHeight;
1099    } else if (options.at[1] === 'center') {
1100      basePosition.top += targetHeight / 2;
1101    }
1102    var atOffset = getOffsets(offsets.at, targetWidth, targetHeight);
1103    basePosition.left += atOffset[0];
1104    basePosition.top += atOffset[1];
1105    return this.each(function () {
1106      var using;
1107      var elem = $(this);
1108      var elemWidth = elem.outerWidth();
1109      var elemHeight = elem.outerHeight();
1110      var marginLeft = parseCss(this, 'marginLeft');
1111      var marginTop = parseCss(this, 'marginTop');
1112      var collisionWidth = elemWidth + marginLeft + parseCss(this, 'marginRight') + scrollInfo.width;
1113      var collisionHeight = elemHeight + marginTop + parseCss(this, 'marginBottom') + scrollInfo.height;
1114      var position = $.extend({}, basePosition);
1115      var myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight());
1116      if (options.my[0] === 'right') {
1117        position.left -= elemWidth;
1118      } else if (options.my[0] === 'center') {
1119        position.left -= elemWidth / 2;
1120      }
1121      if (options.my[1] === 'bottom') {
1122        position.top -= elemHeight;
1123      } else if (options.my[1] === 'center') {
1124        position.top -= elemHeight / 2;
1125      }
1126      position.left += myOffset[0];
1127      position.top += myOffset[1];
1128      var collisionPosition = {
1129        marginLeft: marginLeft,
1130        marginTop: marginTop
1131      };
1132      $.each(['left', 'top'], function (i, dir) {
1133        if (collisions[collision[i]]) {
1134          collisions[collision[i]][dir](position, {
1135            targetWidth: targetWidth,
1136            targetHeight: targetHeight,
1137            elemWidth: elemWidth,
1138            elemHeight: elemHeight,
1139            collisionPosition: collisionPosition,
1140            collisionWidth: collisionWidth,
1141            collisionHeight: collisionHeight,
1142            offset: [atOffset[0] + myOffset[0], atOffset[1] + myOffset[1]],
1143            my: options.my,
1144            at: options.at,
1145            within: within,
1146            elem: elem
1147          });
1148        }
1149      });
1150      if (options.using) {
1151        using = function using(props) {
1152          var left = targetOffset.left - position.left;
1153          var right = left + targetWidth - elemWidth;
1154          var top = targetOffset.top - position.top;
1155          var bottom = top + targetHeight - elemHeight;
1156          var feedback = {
1157            target: {
1158              element: target,
1159              left: targetOffset.left,
1160              top: targetOffset.top,
1161              width: targetWidth,
1162              height: targetHeight
1163            },
1164            element: {
1165              element: elem,
1166              left: position.left,
1167              top: position.top,
1168              width: elemWidth,
1169              height: elemHeight
1170            },
1171            horizontal: right < 0 ? 'left' : left > 0 ? 'right' : 'center',
1172            vertical: bottom < 0 ? 'top' : top > 0 ? 'bottom' : 'middle'
1173          };
1174          if (targetWidth < elemWidth && abs(left + right) < targetWidth) {
1175            feedback.horizontal = 'center';
1176          }
1177          if (targetHeight < elemHeight && abs(top + bottom) < targetHeight) {
1178            feedback.vertical = 'middle';
1179          }
1180          if (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) {
1181            feedback.important = 'horizontal';
1182          } else {
1183            feedback.important = 'vertical';
1184          }
1185          options.using.call(this, props, feedback);
1186        };
1187      }
1188      elem.offset($.extend(position, {
1189        using: using
1190      }));
1191    });
1192  };
1193  if (!$.hasOwnProperty('ui')) {
1194    $.ui = {};
1195  }
1196  $.ui.position = collisions;
1197})(jQuery);;
1198/**
1199 * @file
1200 * Expands the behaviour of the default autocompletion.
1201 */
1202
1203(function ($, Drupal, drupalSettings, once) {
1204
1205  'use strict';
1206
1207  // As a safety precaution, bail if the Drupal Core autocomplete framework is
1208  // not present.
1209  if (!Drupal.autocomplete) {
1210    return;
1211  }
1212
1213  var autocomplete = {};
1214
1215  /**
1216   * Retrieves the custom settings for an autocomplete-enabled input field.
1217   *
1218   * @param {HTMLElement} input
1219   *   The input field.
1220   * @param {object} globalSettings
1221   *   The object containing global settings. If none is passed, drupalSettings
1222   *   is used instead.
1223   *
1224   * @return {object}
1225   *   The effective settings for the given input fields, with defaults set if
1226   *   applicable.
1227   */
1228  autocomplete.getSettings = function (input, globalSettings) {
1229    globalSettings = globalSettings || drupalSettings || {};
1230    // Set defaults for all known settings.
1231    var settings = {
1232      auto_submit: false,
1233      delay: 0,
1234      min_length: 1,
1235      selector: ':submit',
1236    };
1237    var search = $(input).data('search-api-autocomplete-search');
1238    if (search
1239        && globalSettings.search_api_autocomplete
1240        && globalSettings.search_api_autocomplete[search]) {
1241      $.extend(settings, globalSettings.search_api_autocomplete[search]);
1242    }
1243    return settings;
1244  };
1245
1246  /**
1247   * Attaches our custom autocomplete settings to all affected fields.
1248   *
1249   * @type {Drupal~behavior}
1250   *
1251   * @prop {Drupal~behaviorAttach} attach
1252   *   Attaches the autocomplete behaviors.
1253   */
1254  Drupal.behaviors.searchApiAutocomplete = {
1255    attach: function (context, settings) {
1256      // Find all our fields with autocomplete settings.
1257      $(once('search-api-autocomplete',
1258        '.ui-autocomplete-input[data-search-api-autocomplete-search]',
1259        context)).each(function () {
1260          var uiAutocomplete = $(this).data('ui-autocomplete');
1261          if (!uiAutocomplete) {
1262            return;
1263          }
1264          var $element = uiAutocomplete.menu.element;
1265          $element.data('search-api-autocomplete-input-id', this.id);
1266          $element.addClass('search-api-autocomplete-search');
1267          var elementSettings = autocomplete.getSettings(this, settings);
1268          if (elementSettings['delay']) {
1269            uiAutocomplete.options['delay'] = elementSettings['delay'];
1270          }
1271          if (elementSettings['min_length']) {
1272            uiAutocomplete.options['minLength'] = elementSettings['min_length'];
1273          }
1274          // Override the "select" callback of the jQuery UI autocomplete.
1275          var oldSelect = uiAutocomplete.options.select;
1276          uiAutocomplete.options.select = function (event, ui) {
1277            // If this is a URL suggestion, instead of autocompleting we
1278            // redirect the user to that URL.
1279            if (ui.item.url) {
1280              location.href = ui.item.url;
1281              return false;
1282            }
1283
1284            var ret = oldSelect.apply(this, arguments);
1285
1286            // If auto-submit is enabled, submit the form.
1287            if (elementSettings['auto_submit'] && elementSettings['selector']) {
1288              $(elementSettings['selector'], this.form).trigger('click');
1289            }
1290
1291            return ret;
1292          };
1293        });
1294    }
1295  };
1296
1297  Drupal.SearchApiAutocomplete = autocomplete;
1298
1299})(jQuery, Drupal, drupalSettings, once);
1300;

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.