PageSourceSearch

https://www.voyageursdumonde.ca/voyage-sur-mesure/js/main-script.js?638695049753148999

js voyageursdumonde.ca collected 2026-10-09 03:59:32 UTC 79,852 bytes, 635 lines download raw bytes

1/**
2 * van11y-accessible-accordion-aria - ES2015 accessible accordion system, using ARIA (compatible IE9+ when transpiled)
3 * @version v3.0.1
4 * @link https://van11y.net/accessible-accordion/
5 * @license MIT : https://github.com/nico3333fr/van11y-accessible-accordion-aria/blob/master/LICENSE
6 */
7"use strict";function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},loadConfig=function(){var e={},t=function(t,r){e[t]=r},r=function(t){return e[t]},n=function(t){return e[t]};return{set:t,get:r,remove:n}},DATA_HASH_ID="data-hashaccordion-id",pluginConfig=loadConfig(),findById=function(e,t){return document.querySelector("#"+e+"["+DATA_HASH_ID+'="'+t+'"]')},addClass=function(e,t){e.classList?e.classList.add(t):e.className+=" "+t},removeClass=function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\b)"+t.split(" ").join("|")+"(\\b|$)","gi")," ")},hasClass=function(e,t){return e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(e.className)},setAttributes=function(e,t){Object.keys(t).forEach(function(r){e.setAttribute(r,t[r])})},searchParentHashId=function(e,t){for(var r=!1,n=e;1===n.nodeType&&n&&r===!1;)n.hasAttribute(t)===!0?r=!0:n=n.parentNode;return r===!0?n.getAttribute(t):""},searchParent=function(e,t,r){for(var n=!1,A=e;A&&n===!1;)hasClass(A,t)===!0&&A.getAttribute(DATA_HASH_ID)===r?n=!0:A=A.parentNode;return n===!0?A.getAttribute("id"):""},unSelectHeaders=function(e,t){e.forEach(function(e){setAttributes(e,_defineProperty({},t,"false"))})},selectHeader=function(e,t){e.setAttribute(t,!0)},selectHeaderInList=function(e,t,r){var n=void 0;e.forEach(function(e,t){"true"===e.getAttribute(r)&&(n=t)}),"next"===t&&(selectHeader(e[n+1]),setTimeout(function(){e[n+1].focus()},0)),"prev"===t&&(selectHeader(e[n-1]),setTimeout(function(){e[n-1].focus()},0))},plugin=function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=_extends({ACCORDION_JS:"js-accordion",ACCORDION_JS_HEADER:"js-accordion__header",ACCORDION_JS_PANEL:"js-accordion__panel",ACCORDION_DATA_PREFIX_CLASS:"data-accordion-prefix-classes",ACCORDION_DATA_OPENED:"data-accordion-opened",ACCORDION_DATA_MULTISELECTABLE:"data-accordion-multiselectable",ACCORDION_DATA_COOL_SELECTORS:"data-accordion-cool-selectors",ACCORDION_PREFIX_IDS:"accordion",ACCORDION_BUTTON_ID:"_tab",ACCORDION_PANEL_ID:"_panel",ACCORDION_STYLE:"accordion",ACCORDION_TITLE_STYLE:"accordion__title",ACCORDION_HEADER_STYLE:"accordion__header",ACCORDION_PANEL_STYLE:"accordion__panel",ACCORDION_ROLE_TABLIST:"tablist",ACCORDION_ROLE_TAB:"tab",ACCORDION_ROLE_TABPANEL:"tabpanel",ATTR_ROLE:"role",ATTR_MULTISELECTABLE:"aria-multiselectable",ATTR_EXPANDED:"aria-expanded",ATTR_LABELLEDBY:"aria-labelledby",ATTR_HIDDEN:"aria-hidden",ATTR_CONTROLS:"aria-controls",ATTR_SELECTED:"aria-selected"},e),r=Math.random().toString(32).slice(2,12);pluginConfig.set(r,t);var n=function(){var e=arguments.length<=0||void 0===arguments[0]?document:arguments[0];return[].slice.call(e.querySelectorAll("."+t.ACCORDION_JS))},A=function(e){n(e).forEach(function(e){var n="z"+Math.random().toString(32).slice(2,12),A=e.hasAttribute(t.ACCORDION_DATA_PREFIX_CLASS)===!0?e.getAttribute(t.ACCORDION_DATA_PREFIX_CLASS)+"-":"",a=e.hasAttribute(t.ACCORDION_DATA_COOL_SELECTORS)===!0;"none"===e.getAttribute(t.ACCORDION_DATA_MULTISELECTABLE)?e.setAttribute(t.ATTR_MULTISELECTABLE,"false"):e.setAttribute(t.ATTR_MULTISELECTABLE,"true"),e.setAttribute(t.ATTR_ROLE,t.ACCORDION_ROLE_TABLIST),e.setAttribute("id",n),e.setAttribute(DATA_HASH_ID,r),addClass(e,A+t.ACCORDION_STYLE);var i=[].slice.call(e.querySelectorAll("."+t.ACCORDION_JS_HEADER));i.forEach(function(i,_){var o,T;if(i.parentNode===e||a!==!1){var E=_+1,s=i.nextElementSibling,C=i.innerHTML,c=document.createElement("BUTTON"),D=i.hasAttribute(t.ACCORDION_DATA_OPENED)===!0?i.getAttribute(t.ACCORDION_DATA_OPENED):"";c.innerHTML=C,addClass(c,t.ACCORDION_JS_HEADER),addClass(c,A+t.ACCORDION_HEADER_STYLE),setAttributes(c,(o={},_defineProperty(o,t.ATTR_ROLE,t.ACCORDION_ROLE_TAB),_defineProperty(o,"id",t.ACCORDION_PREFIX_IDS+n+t.ACCORDION_BUTTON_ID+E),_defineProperty(o,t.ATTR_CONTROLS,t.ACCORDION_PREFIX_IDS+n+t.ACCORDION_PANEL_ID+E),_defineProperty(o,t.ATTR_SELECTED,"false"),_defineProperty(o,"type","button"),_defineProperty(o,DATA_HASH_ID,r),o)),i.innerHTML="",i.appendChild(c),addClass(i,A+t.ACCORDION_TITLE_STYLE),removeClass(i,t.ACCORDION_JS_HEADER),addClass(s,A+t.ACCORDION_PANEL_STYLE),setAttributes(s,(T={},_defineProperty(T,t.ATTR_ROLE,t.ACCORDION_ROLE_TABPANEL),_defineProperty(T,t.ATTR_LABELLEDBY,t.ACCORDION_PREFIX_IDS+n+t.ACCORDION_BUTTON_ID+E),_defineProperty(T,"id",t.ACCORDION_PREFIX_IDS+n+t.ACCORDION_PANEL_ID+E),_defineProperty(T,DATA_HASH_ID,r),T)),"true"===D?(c.setAttribute(t.ATTR_EXPANDED,"true"),i.removeAttribute(t.ACCORDION_DATA_OPENED),s.setAttribute(t.ATTR_HIDDEN,"false")):(c.setAttribute(t.ATTR_EXPANDED,"false"),s.setAttribute(t.ATTR_HIDDEN,"true"))}})})};return{attach:A}},main=function(){return["click","keydown","focus"].forEach(function(e){document.body.addEventListener(e,function(t){var r=searchParentHashId(t.target,DATA_HASH_ID);""!==r&&!function(){var n=pluginConfig.get(r);
7hasClass(t.target,n.ACCORDION_JS_HEADER)===!0&&"focus"===e&&!function(){var e=t.target,A=findById(searchParent(e,n.ACCORDION_JS,r),r),a=A.hasAttribute(n.ACCORDION_DATA_COOL_SELECTORS)===!0,i=[].slice.call(A.querySelectorAll("."+n.ACCORDION_JS_HEADER));a===!1&&(i=i.filter(function(e){return e.parentNode.parentNode===A})),unSelectHeaders(i,n.ATTR_SELECTED),selectHeader(e,n.ATTR_SELECTED)}(),hasClass(t.target,n.ACCORDION_JS_HEADER)===!0&&"click"===e&&!function(){var e=t.target,A=findById(searchParent(e,n.ACCORDION_JS,r),r),a=A.hasAttribute(n.ACCORDION_DATA_COOL_SELECTORS)===!0,i=[].slice.call(A.querySelectorAll("."+n.ACCORDION_JS_HEADER)),_=A.getAttribute(n.ATTR_MULTISELECTABLE),o=findById(e.getAttribute(n.ATTR_CONTROLS),r),T=e.getAttribute(n.ATTR_EXPANDED);a===!1&&(i=i.filter(function(e){return e.parentNode.parentNode===A})),"false"===T?(e.setAttribute(n.ATTR_EXPANDED,!0),o.removeAttribute(n.ATTR_HIDDEN)):(e.setAttribute(n.ATTR_EXPANDED,!1),o.setAttribute(n.ATTR_HIDDEN,!0)),"false"===_&&i.forEach(function(t){var A=findById(t.getAttribute(n.ATTR_CONTROLS),r);t!==e?(t.setAttribute(n.ATTR_SELECTED,!1),t.setAttribute(n.ATTR_EXPANDED,!1),A.setAttribute(n.ATTR_HIDDEN,!0)):t.setAttribute(n.ATTR_SELECTED,!0)}),setTimeout(function(){e.focus()},0),t.preventDefault()}(),hasClass(t.target,n.ACCORDION_JS_HEADER)===!0&&"keydown"===e&&!function(){var e=t.target,A=searchParent(e,n.ACCORDION_JS,r),a=findById(A,r),i=a.hasAttribute(n.ACCORDION_DATA_COOL_SELECTORS)===!0,_=[].slice.call(a.querySelectorAll("."+n.ACCORDION_JS_HEADER));i===!1&&(_=_.filter(function(e){return e.parentNode.parentNode===a})),36===t.keyCode?(unSelectHeaders(_,n.ATTR_SELECTED),selectHeader(_[0],n.ATTR_SELECTED),setTimeout(function(){_[0].focus()},0),t.preventDefault()):35===t.keyCode?(unSelectHeaders(_,n.ATTR_SELECTED),selectHeader(_[_.length-1],n.ATTR_SELECTED),setTimeout(function(){_[_.length-1].focus()},0),t.preventDefault()):37!==t.keyCode&&38!==t.keyCode||t.ctrlKey?40!==t.keyCode&&39!==t.keyCode||t.ctrlKey||("true"===_[_.length-1].getAttribute(n.ATTR_SELECTED)?(unSelectHeaders(_,n.ATTR_SELECTED),selectHeader(_[0],n.ATTR_SELECTED),setTimeout(function(){_[0].focus()},0),t.preventDefault()):(selectHeaderInList(_,"next",n.ATTR_SELECTED),t.preventDefault())):"true"===_[0].getAttribute(n.ATTR_SELECTED)?(unSelectHeaders(_,n.ATTR_SELECTED),selectHeader(_[_.length-1],n.ATTR_SELECTED),setTimeout(function(){_[_.length-1].focus()},0),t.preventDefault()):(selectHeaderInList(_,"prev",n.ATTR_SELECTED),t.preventDefault())}()}()},!0)}),plugin};window.van11yAccessibleAccordionAria=main();var onLoad=function e(){var t=window.van11yAccessibleAccordionAria();t.attach(),document.removeEventListener("DOMContentLoaded",e)};document.addEventListener("DOMContentLoaded",onLoad);
8// Awesomplete - Lea Verou - MIT license
9!function(){function t(t){var e=Array.isArray(t)?{label:t[0],value:t[1]}:"object"==typeof t&&"label"in t&&"value"in t?t:{label:t,value:t};this.label=e.label||e.value,this.value=e.value}function e(t,e,i){for(var n in e){var s=e[n],r=t.input.getAttribute("data-"+n.toLowerCase());"number"==typeof s?t[n]=parseInt(r):!1===s?t[n]=null!==r:s instanceof Function?t[n]=null:t[n]=r,t[n]||0===t[n]||(t[n]=n in i?i[n]:s)}}function i(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function n(t,e){return o.call((e||document).querySelectorAll(t))}function s(){n("input.awesomplete").forEach(function(t){new r(t)})}var r=function(t,n){var s=this;r.count=(r.count||0)+1,this.count=r.count,this.isOpened=!1,this.input=i(t),this.input.setAttribute("autocomplete","off"),this.input.setAttribute("aria-expanded","false"),this.input.setAttribute("aria-owns","awesomplete_list_"+this.count),this.input.setAttribute("role","combobox"),this.options=n=n||{},e(this,{minChars:2,maxItems:10,autoFirst:!1,data:r.DATA,filter:r.FILTER_CONTAINS,sort:!1!==n.sort&&r.SORT_BYLENGTH,container:r.CONTAINER,item:r.ITEM,replace:r.REPLACE,tabSelect:!1,listLabel:"Results List"},n),this.index=-1,this.container=this.container(t),this.ul=i.create("ul",{hidden:"hidden",role:"listbox",id:"awesomplete_list_"+this.count,inside:this.container,"aria-label":this.listLabel}),this.status=i.create("span",{className:"visually-hidden",role:"status","aria-live":"assertive","aria-atomic":!0,inside:this.container,textContent:0!=this.minChars?"Type "+this.minChars+" or more characters for results.":"Begin typing for results."}),this._events={input:{input:this.evaluate.bind(this),blur:this.close.bind(this,{reason:"blur"}),keydown:function(t){var e=t.keyCode;s.opened&&(13===e&&s.selected?(t.preventDefault(),s.select(void 0,void 0,t)):9===e&&s.selected&&s.tabSelect?s.select(void 0,void 0,t):27===e?s.close({reason:"esc"}):38!==e&&40!==e||(t.preventDefault(),s[38===e?"previous":"next"]()))}},form:{submit:this.close.bind(this,{reason:"submit"})},ul:{mousedown:function(t){t.preventDefault()},click:function(t){var e=t.target;if(e!==this){for(;e&&!/li/i.test(e.nodeName);)e=e.parentNode;e&&0===t.button&&(t.preventDefault(),s.select(e,t.target,t))}}}},i.bind(this.input,this._events.input),i.bind(this.input.form,this._events.form),i.bind(this.ul,this._events.ul),this.input.hasAttribute("list")?(this.list="#"+this.input.getAttribute("list"),this.input.removeAttribute("list")):this.list=this.input.getAttribute("data-list")||n.list||[],r.all.push(this)};r.prototype={set list(t){if(Array.isArray(t))this._list=t;else if("string"==typeof t&&t.indexOf(",")>-1)this._list=t.split(/\s*,\s*/);else if((t=i(t))&&t.children){var e=[];
vendor: 4,091 bytes, line 9
9o.apply(t.children).forEach(function(t){if(!t.disabled){var i=t.textContent.trim(),n=t.value||i,s=t.label||i;""!==n&&e.push({label:s,value:n})}}),this._list=e}document.activeElement===this.input&&this.evaluate()},get selected(){return this.index>-1},get opened(){return this.isOpened},close:function(t){this.opened&&(this.input.setAttribute("aria-expanded","false"),this.ul.setAttribute("hidden",""),this.isOpened=!1,this.index=-1,this.status.setAttribute("hidden",""),i.fire(this.input,"awesomplete-close",t||{}))},open:function(){this.input.setAttribute("aria-expanded","true"),this.ul.removeAttribute("hidden"),this.isOpened=!0,this.status.removeAttribute("hidden"),this.autoFirst&&-1===this.index&&this.goto(0),i.fire(this.input,"awesomplete-open")},destroy:function(){if(i.unbind(this.input,this._events.input),i.unbind(this.input.form,this._events.form),!this.options.container){var t=this.container.parentNode;t.insertBefore(this.input,this.container),t.removeChild(this.container)}this.input.removeAttribute("autocomplete"),this.input.removeAttribute("aria-autocomplete");var e=r.all.indexOf(this);-1!==e&&r.all.splice(e,1)},next:function(){var t=this.ul.children.length;this.goto(this.index<t-1?this.index+1:t?0:-1)},previous:function(){var t=this.ul.children.length,e=this.index-1;this.goto(this.selected&&-1!==e?e:t-1)},goto:function(t){var e=this.ul.children;this.selected&&e[this.index].setAttribute("aria-selected","false"),this.index=t,t>-1&&e.length>0&&(e[t].setAttribute("aria-selected","true"),this.status.textContent=e[t].textContent+", list item "+(t+1)+" of "+e.length,this.input.setAttribute("aria-activedescendant",this.ul.id+"_item_"+this.index),this.ul.scrollTop=e[t].offsetTop-this.ul.clientHeight+e[t].clientHeight,i.fire(this.input,"awesomplete-highlight",{text:this.suggestions[this.index]}))},select:function(t,e,n){if(t?this.index=i.siblingIndex(t):t=this.ul.children[this.index],t){var s=this.suggestions[this.index];i.fire(this.input,"awesomplete-select",{text:s,origin:e||t,originalEvent:n})&&(this.replace(s),this.close({reason:"select"}),i.fire(this.input,"awesomplete-selectcomplete",{text:s,originalEvent:n}))}},evaluate:function(){var e=this,i=this.input.value;i.length>=this.minChars&&this._list&&this._list.length>0?(this.index=-1,this.ul.innerHTML="",this.suggestions=this._list.map(function(n){return new t(e.data(n,i))}).filter(function(t){return e.filter(t,i)}),!1!==this.sort&&(this.suggestions=this.suggestions.sort(this.sort)),this.suggestions=this.suggestions.slice(0,this.maxItems),this.suggestions.forEach(function(t,n){e.ul.appendChild(e.item(t,i,n))}),0===this.ul.children.length?(this.status.textContent="No results found",this.close({reason:"nomatches"})):(this.open(),this.status.textContent=this.ul.children.length+" results found")):(this.close({reason:"nomatches"}),this.status.textContent="No results found")}},r.all=[],r.FILTER_CONTAINS=function(t,e){return RegExp(i.regExpEscape(e.trim()),"i").test(t)},r.FILTER_STARTSWITH=function(t,e){return RegExp("^"+i.regExpEscape(e.trim()),"i").test(t)},r.SORT_BYLENGTH=function(t,e){return t.length!==e.length?t.length-e.length:t<e?-1:1},r.CONTAINER=function(t){return i.create("div",{className:"awesomplete",around:t})},r.ITEM=function(t,e,n){return i.create("li",{innerHTML:""===e.trim()?t:t.replace(RegExp(i.regExpEscape(e.trim()),"gi"),"<mark>$&</mark>"),role:"option","aria-selected":"false",id:"awesomplete_list_"+this.count+"_item_"+n})},r.REPLACE=function(t){this.input.value=t.value},r.DATA=function(t){return t},Object.defineProperty(t.prototype=Object.create(String.prototype),"length",{get:function(){return this.label.length}}),t.prototype.toString=t.prototype.valueOf=function(){return""+this.label};var o=Array.prototype.slice;i.create=function(t,e){var n=document.createElement(t);for(var s in e){var r=e[s];if("inside"===s)i(r).appendChild(n);else if("around"===s){var o=i(r);o.parentNode.insertBefore(n,o),n.appendChild(o),null!=o.getAttribute("autofocus")&&o.focus()}else s in n?n[s]=r:n.setAttribute(s,r)}return n},i.bind=function(t,e){if(t)for(var i in e){var n=e[i];
9i.split(/\s+/).forEach(function(e){t.addEventListener(e,n)})}},i.unbind=function(t,e){if(t)for(var i in e){var n=e[i];i.split(/\s+/).forEach(function(e){t.removeEventListener(e,n)})}},i.fire=function(t,e,i){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0);for(var s in i)n[s]=i[s];return t.dispatchEvent(n)},i.regExpEscape=function(t){return t.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")},i.siblingIndex=function(t){for(var e=0;t=t.previousElementSibling;e++);return e},"undefined"!=typeof self&&(self.Awesomplete=r),"undefined"!=typeof Document&&("loading"!==document.readyState?s():document.addEventListener("DOMContentLoaded",s)),r.$=i,r.$$=n,"object"==typeof module&&module.exports&&(module.exports=r)}();
10/**
11 * Detect it
12 * https://github.com/rafgraph/detect-it
13 * https://unpkg.com/[email protected]/dist/detect-it.umd.production.js
14 */
15!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).DetectIt={})}(this,(function(e){"use strict";var t="undefined"!=typeof window?window:{screen:{},navigator:{}},n=(t.matchMedia||function(){return{matches:!1}}).bind(t),o=!1,i={get passive(){return o=!0}},s=function(){};t.addEventListener&&t.addEventListener("p",s,i),t.removeEventListener&&t.removeEventListener("p",s,!1);var r=o,a="PointerEvent"in t,c="ontouchstart"in t,u=c||"TouchEvent"in t&&n("(any-pointer: coarse)").matches,d=(t.navigator.maxTouchPoints||0)>0||u,h=t.navigator.userAgent||"",p=n("(pointer: coarse)").matches&&/iPad|Macintosh/.test(h)&&Math.min(t.screen.width||0,t.screen.height||0)>=768,v=(n("(pointer: coarse)").matches||!n("(pointer: fine)").matches&&c)&&!/Windows.*Firefox/.test(h),f=n("(any-pointer: fine)").matches||n("(any-hover: hover)").matches||p||!c,m=!d||!f&&v?d?"touchOnly":"mouseOnly":"hybrid",y="mouseOnly"===m?"mouse":"touchOnly"===m||v?"touch":"mouse";e.deviceType=m,e.primaryInput=y,e.supportsPassiveEvents=r,e.supportsPointerEvents=a,e.supportsTouchEvents=u,Object.defineProperty(e,"__esModule",{value:!0})}));
16
17/**
18 * van11y-accessible-modal-window-aria - ES2015 accessible modal window system, using ARIA (compatible IE9+ when transpiled)
19 * @version v2.4.5
20 * @link https://van11y.net/accessible-modal/
21 * @license MIT : https://github.com/nico3333fr/van11y-accessible-modal-window-aria/blob/master/LICENSE
22 */
23"use strict";!function(t){function e(t,e){for("string"==typeof e&&(e=document.createElement(e)),t.appendChild(e);t.firstChild!==e;)e.appendChild(t.firstChild)}function a(t){t.parentNode.removeChild(t)}var o="js-modal",d="label_modal_",l="modal",n="data-modal-background-click",i="data-modal-prefix-class",r="data-modal-text",s="data-modal-content-id",c="data-modal-describedby-id",u="data-modal-title",m="data-modal-focus-toid",b="data-modal-close-text",f="data-modal-close-title",g="data-modal-close-img",v="dialog",A="modal-close",C="js-modal-close",p="js-modal-close",h="data-content-back-id",y="data-focus-back",k="modal__wrapper",x="modal__content",I="js-modal-content",L="modal__closeimg",T="modal-close__text",E="modal-title",B="modal-title",j="a[href], area[href], input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]",M="js-modal-page",P="js-modal",D="js-modal-overlay",_="modal-overlay",w="Close modal",H="data-background-click",N="invisible",S="no-scroll",q="role",F="open",O="aria-labelledby",R="aria-describedby",$="aria-hidden",K="aria-haspopup",V="dialog",W=function(e){return t.getElementById(e)},z=function(t,e){t.classList?t.classList.add(e):t.className+=" "+e},G=function(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")},J=function(t,e){return t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)},Q=function(t,e){for(var a=!1,o=t.parentNode;o&&a===!1;)J(o,e)===!0?a=!0:o=o.parentNode;return a===!0?o.getAttribute("id"):""},U=function(t){var e=D,a=t.text||w,o=t.prefixClass+_,d="disabled"===t.backgroundEnabled?"disabled":"enabled";return'<span\n id="'+e+'"\n class="'+o+'"\n'+H+'="'+d+'"\n title="'+a+'"\n>\n<span class="'+N+'">'+a+"</span>\n</span>"},X=function(t){var e=P,a=t.modalPrefixClass+l,o=t.modalPrefixClass+k,d=t.modalPrefixClass+A,n=t.modalCloseImgPath?'<img src="'+t.modalCloseImgPath+'" alt="'+t.modalCloseText+'" class="'+t.modalPrefixClass+L+'" />':'<span class="'+t.modalPrefixClass+T+'">\n'+t.modalCloseText+"\n</span>",i=t.modalPrefixClass+x,r=t.modalPrefixClass+B,s=""!==t.modalTitle?'<h1 id="'+E+'" class="'+r+'">\n'+t.modalTitle+"\n</h1>":"",c='<button type="button" class="'+p+" "+d+'" id="'+C+'" title="'+t.modalCloseTitle+'" '+h+'="'+t.modalContentId+'" '+y+'="'+t.modalFocusBackId+'">\n'+n+"\n</button>",u=t.modalText,m=""!==t.modalDescribedById?R+'="'+t.modalDescribedById+'"':"";if(""===u&&t.modalContentId){var b=W(t.modalContentId);b&&(u='<div id="'+I+'">\n'+b.innerHTML+"\n</div",b.innerHTML="")}return'<dialog id="'+e+'" class="'+a+'" '+q+'="'+v+'" '+m+" "+F+" "+O+'="'+E+'">\n<div role="document" class="'+o+'">\n'+c+'\n<div class="'+i+'">\n'+s+"\n"+u+"\n</div>\n</div>\n</dialog>"},Y=function(t){if(a(t.modal),a(t.overlay),""!==t.contentBackId){var e=W(t.contentBackId);e&&(e.innerHTML=t.modalContent)}if(t.modalFocusBackId){var o=W(t.modalFocusBackId);o&&o.focus()}},Z=function(){var e=arguments.length<=0||void 0===arguments[0]?t:arguments[0];return[].slice.call(e.querySelectorAll("."+o))},tt=function(a){var l=arguments.length<=1||void 0===arguments[1]||arguments[1];
23Z(a).forEach(function(a){var o=Math.random().toString(32).slice(2,12),l=W(M),n=t.querySelector("body");if(a.setAttribute("id",d+o),a.setAttribute(K,V),null===l||0===l.length){var i=t.createElement("DIV");i.setAttribute("id",M),e(n,i)}}),l&&["click","keydown"].forEach(function(e){t.body.addEventListener(e,function(a){var d=Q(a.target,o);if((J(a.target,o)===!0||""!==d)&&"click"===e){var l=t.querySelector("body"),v=""!==d?W(d):a.target,A=v.hasAttribute(i)===!0?v.getAttribute(i)+"-":"",k=v.hasAttribute(r)===!0?v.getAttribute(r):"",x=v.hasAttribute(s)===!0?v.getAttribute(s):"",L=v.hasAttribute(c)===!0?v.getAttribute(c):"",T=v.hasAttribute(u)===!0?v.getAttribute(u):"",E=v.hasAttribute(b)===!0?v.getAttribute(b):w,B=v.hasAttribute(f)===!0?v.getAttribute(f):E,_=v.hasAttribute(g)===!0?v.getAttribute(g):"",N=v.hasAttribute(n)===!0?v.getAttribute(n):"",q=v.hasAttribute(m)===!0?v.getAttribute(m):"",F=W(M);l.insertAdjacentHTML("beforeEnd",U({text:B,backgroundEnabled:N,prefixClass:A})),l.insertAdjacentHTML("beforeEnd",X({modalText:k,modalPrefixClass:A,backgroundEnabled:x,modalTitle:T,modalCloseText:E,modalCloseTitle:B,modalCloseImgPath:_,modalContentId:x,modalDescribedById:L,modalFocusBackId:v.getAttribute("id")})),F.setAttribute($,"true"),z(l,S);var O=W(C);if(""!==q){var R=W(q);R?R.focus():O.focus()}else O.focus();a.preventDefault()}var K=Q(a.target,p);if((a.target.getAttribute("id")===C||""!==K||a.target.getAttribute("id")===D||J(a.target,p)===!0)&&"click"===e){var l=t.querySelector("body"),F=W(M),V=W(P),Z=W(I)?W(I).innerHTML:"",tt=W(D),et=W(C),at=et.getAttribute(y),ot=et.getAttribute(h),N=tt.getAttribute(H);a.target.getAttribute("id")===D&&"disabled"===N||(Y({modal:V,modalContent:Z,overlay:tt,modalFocusBackId:at,contentBackId:ot,backgroundEnabled:N,fromId:a.target.getAttribute("id")}),F.removeAttribute($),G(l,S))}if(W(P)&&"keydown"===e){var l=t.querySelector("body"),F=W(M),V=W(P),Z=W(I)?W(I).innerHTML:"",tt=W(D),et=W(C),at=et.getAttribute(y),ot=et.getAttribute(h),dt=[].slice.call(V.querySelectorAll(j));27===a.keyCode&&(Y({modal:V,modalContent:Z,overlay:tt,modalFocusBackId:at,contentBackId:ot}),F.removeAttribute($),G(l,S)),9===a.keyCode&&dt.indexOf(a.target)>=0&&(a.shiftKey?a.target===dt[0]&&(dt[dt.length-1].focus(),a.preventDefault()):a.target===dt[dt.length-1]&&(dt[0].focus(),a.preventDefault())),9===a.keyCode&&dt.indexOf(a.target)===-1&&(a.preventDefault(),dt[0].focus())}},!0)})},et=function at(){tt(),document.removeEventListener("DOMContentLoaded",at)};document.addEventListener("DOMContentLoaded",et),window.van11yAccessibleModalWindowAria=tt}(document);
24/*
25 *   This content is licensed according to the W3C Software License at
26 *   https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
27 *
28 *   File:   tabs-manual.js
29 *
30 *   Desc:   Tablist widget that implements ARIA Authoring Practices
31 */
32
33'use strict';
34
35class TabsManual {
36  constructor(groupNode) {
37    this.tablistNode = groupNode;
38    this.tabs = [];
39    this.firstTab = null;
40    this.lastTab = null;
41    this.tabs = Array.from(this.tablistNode.querySelectorAll('[role=tab]'));
42    this.tabpanels = [];
43
44    for (var i = 0; i < this.tabs.length; i += 1) {
45      var tab = this.tabs[i];
46      var tabpanel = document.getElementById(tab.getAttribute('aria-controls'));
47
48      //tab.tabIndex = -1;
49      //tab.setAttribute('aria-selected', 'false');
50      this.tabpanels.push(tabpanel);
51      //this.tabpanels[i].ariaHidden = true;
52
53      tab.addEventListener('keydown', this.onKeydown.bind(this));
54      tab.addEventListener('click', this.onClick.bind(this));
55
56      if (!this.firstTab) {
57        this.firstTab = tab;
58      }
59      this.lastTab = tab;
60    }
61
62    //this.setSelectedTab(this.firstTab);
63    
64  }
65
66  setSelectedTab(currentTab) {
67    for (var i = 0; i < this.tabs.length; i += 1) {
68      var tab = this.tabs[i];
69      if (currentTab === tab) {
70        tab.ariaSelected = true;
71        tab.removeAttribute('tabindex');
72        this.tabpanels[i].ariaHidden = false;
73      } else {
74        tab.ariaSelected = false;
75        tab.tabIndex = -1;
76        this.tabpanels[i].ariaHidden = true;
77      }
78    }
79  }
80
81  moveFocusToTab(currentTab) {
82    currentTab.focus();
83  }
84
85  moveFocusToPreviousTab(currentTab) {
86    var index;
87    if (currentTab === this.firstTab) {
88      this.moveFocusToTab(this.lastTab);
89    } else {
90      index = this.tabs.indexOf(currentTab);
91      this.moveFocusToTab(this.tabs[index - 1]);
92    }
93  }
94
95  moveFocusToNextTab(currentTab) {
96    var index;
97    if (currentTab === this.lastTab) {
98      this.moveFocusToTab(this.firstTab);
99    } else {
100      index = this.tabs.indexOf(currentTab);
101      this.moveFocusToTab(this.tabs[index + 1]);
102    }
103  }
104
105  /* EVENT HANDLERS */
106
107  onKeydown(event) {
108    var tgt = event.currentTarget,
109      flag = false;
110
111    switch (event.key) {
112      case 'ArrowLeft':
113        this.moveFocusToPreviousTab(tgt);
114        flag = true;
115        break;
116
117      case 'ArrowRight':
118        this.moveFocusToNextTab(tgt);
119        flag = true;
120        break;
121
122      case 'ArrowUp':
123        this.moveFocusToPreviousTab(tgt);
124        flag = true;
125        break;
126
127      case 'ArrowDown':
128        this.moveFocusToNextTab(tgt);
129        flag = true;
130        break;
131
132      case 'Home':
133        this.moveFocusToTab(this.firstTab);
134        flag = true;
135        break;
136
137      case 'End':
138        this.moveFocusToTab(this.lastTab);
139        flag = true;
140        break;
141
142      default:
143        break;
144    }
145
146    if (flag) {
147      event.stopPropagation();
148      event.preventDefault();
149    }
150  }
151
152  // Since this example uses buttons for the tabs, the click onr also is activated
153  // with the space and enter keys
154  onClick(event) {
155    this.setSelectedTab(event.currentTarget);
156  }
157}
158
159// Initialize tablist
160
161window.addEventListener('load', function () {
162  var tablists = document.querySelectorAll('[role=tablist].js-tablist-manual');
163  for (var i = 0; i < tablists.length; i++) {
164    new TabsManual(tablists[i]);
165  }
166});
167
168/*
169TinySlider 2.9.4
170*/
vendor: 15,068 bytes, line 171
171var tns=function(){var t=window,Ai=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.msRequestAnimationFrame||function(t){return setTimeout(t,16)},e=window,Ni=e.cancelAnimationFrame||e.mozCancelAnimationFrame||function(t){clearTimeout(t)};function Li(){for(var t,e,n,i=arguments[0]||{},a=1,r=arguments.length;a<r;a++)if(null!==(t=arguments[a]))for(e in t)i!==(n=t[e])&&void 0!==n&&(i[e]=n);return i}function Bi(t){return 0<=["true","false"].indexOf(t)?JSON.parse(t):t}function Si(t,e,n,i){if(i)try{t.setItem(e,n)}catch(t){}return n}function Hi(){var t=document,e=t.body;return e||((e=t.createElement("body")).fake=!0),e}var n=document.documentElement;function Oi(t){var e="";return t.fake&&(e=n.style.overflow,t.style.background="",t.style.overflow=n.style.overflow="hidden",n.appendChild(t)),e}function Di(t,e){t.fake&&(t.remove(),n.style.overflow=e,n.offsetHeight)}function ki(t,e,n,i){"insertRule"in t?t.insertRule(e+"{"+n+"}",i):t.addRule(e,n,i)}function Ri(t){return("insertRule"in t?t.cssRules:t.rules).length}function Ii(t,e,n){for(var i=0,a=t.length;i<a;i++)e.call(n,t[i],i)}var i="classList"in document.createElement("_"),Pi=i?function(t,e){return t.classList.contains(e)}:function(t,e){return 0<=t.className.indexOf(e)},zi=i?function(t,e){Pi(t,e)||t.classList.add(e)}:function(t,e){Pi(t,e)||(t.className+=" "+e)},Wi=i?function(t,e){Pi(t,e)&&t.classList.remove(e)}:function(t,e){Pi(t,e)&&(t.className=t.className.replace(e,""))};function qi(t,e){return t.hasAttribute(e)}function Fi(t,e){return t.getAttribute(e)}function r(t){return void 0!==t.item}function ji(t,e){if(t=r(t)||t instanceof Array?t:[t],"[object Object]"===Object.prototype.toString.call(e))for(var n=t.length;n--;)for(var i in e)t[n].setAttribute(i,e[i])}function Vi(t,e){t=r(t)||t instanceof Array?t:[t];for(var n=(e=e instanceof Array?e:[e]).length,i=t.length;i--;)for(var a=n;a--;)t[i].removeAttribute(e[a])}function Gi(t){for(var e=[],n=0,i=t.length;n<i;n++)e.push(t[n]);return e}function Qi(t,e){"none"!==t.style.display&&(t.style.display="none")}function Xi(t,e){"none"===t.style.display&&(t.style.display="")}function Yi(t){return"none"!==window.getComputedStyle(t).display}function Ki(e){if("string"==typeof e){var n=[e],i=e.charAt(0).toUpperCase()+e.substr(1);["Webkit","Moz","ms","O"].forEach(function(t){"ms"===t&&"transform"!==e||n.push(t+i)}),e=n}for(var t=document.createElement("fakeelement"),a=(e.length,0);a<e.length;a++){var r=e[a];if(void 0!==t.style[r])return r}return!1}function Ji(t,e){var n=!1;return/^Webkit/.test(t)?n="webkit"+e+"End":/^O/.test(t)?n="o"+e+"End":t&&(n=e.toLowerCase()+"end"),n}var a=!1;try{var o=Object.defineProperty({},"passive",{get:function(){a=!0}});window.addEventListener("test",null,o)}catch(t){}var u=!!a&&{passive:!0};function Ui(t,e,n){for(var i in e){var a=0<=["touchstart","touchmove"].indexOf(i)&&!n&&u;t.addEventListener(i,e[i],a)}}function _i(t,e){for(var n in e){var i=0<=["touchstart","touchmove"].indexOf(n)&&u;t.removeEventListener(n,e[n],i)}}function Zi(){return{topics:{},on:function(t,e){this.topics[t]=this.topics[t]||[],this.topics[t].push(e)},off:function(t,e){if(this.topics[t])for(var n=0;n<this.topics[t].length;n++)if(this.topics[t][n]===e){this.topics[t].splice(n,1);break}},emit:function(e,n){n.type=e,this.topics[e]&&this.topics[e].forEach(function(t){t(n,e)})}}}Object.keys||(Object.keys=function(t){var e=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.push(n);return e}),"remove"in Element.prototype||(Element.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)});var $i=function(H){H=Li({container:".slider",mode:"carousel",axis:"horizontal",items:1,gutter:0,edgePadding:0,fixedWidth:!1,autoWidth:!1,viewportMax:!1,slideBy:1,center:!1,controls:!0,controlsPosition:"top",controlsText:["prev","next"],controlsContainer:!1,prevButton:!1,nextButton:!1,nav:!0,navPosition:"top",navContainer:!1,navAsThumbnails:!1,arrowKeys:!1,speed:300,autoplay:!1,autoplayPosition:"top",autoplayTimeout:5e3,autoplayDirection:"forward",autoplayText:["start","stop"],autoplayHoverPause:!1,autoplayButton:!1,autoplayButtonOutput:!0,autoplayResetOnVisibility:!0,animateIn:"tns-fadeIn",animateOut:"tns-fadeOut",animateNormal:"tns-normal",animateDelay:!1,loop:!0,rewind:!1,autoHeight:!1,responsive:!1,lazyload:!1,lazyloadSelector:".tns-lazy-img",touch:!0,mouseDrag:!1,swipeAngle:15,nested:!1,preventActionWhenRunning:!1,preventScrollOnTouch:!1,freezable:!0,onInit:!1,useLocalStorage:!0,nonce:!1},H||{});var O=document,m=window,a={ENTER:13,SPACE:32,LEFT:37,RIGHT:39},e={},n=H.useLocalStorage;if(n){var t=navigator.userAgent,i=new Date;try{(e=m.localStorage)?(e.setItem(i,i),n=e.getItem(i)==i,e.removeItem(i)):n=!1,n||(e={})}catch(t){n=!1}n&&(e.tnsApp&&e.tnsApp!==t&&["tC","tPL","tMQ","tTf","t3D","tTDu","tTDe","tADu","tADe","tTE","tAE"].forEach(function(t){e.removeItem(t)}),localStorage.tnsApp=t)}var y=e.tC?Bi(e.tC):Si(e,"tC",function(){var t=document,e=Hi(),n=Oi(e),i=t.createElement("div"),a=!1;e.appendChild(i);try{for(var r,o="(10px * 10)",u=["calc"+o,"-moz-calc"+o,"-webkit-calc"+o],l=0;l<3;l++)if(r=u[l],i.style.width=r,100===i.offsetWidth){a=r.replace(o,"");break}}catch(t){}return e.fake?Di(e,n):i.remove(),a}(),n),g=e.tPL?Bi(e.tPL):Si(e,"tPL",function(){var t,e=document,n=Hi(),i=Oi(n),a=e.createElement("div"),r=e.createElement("div"),o="";a.className="tns-t-subp2",r.className="tns-t-ct";for(var u=0;u<70;u++)o+="<div></div>";return r.innerHTML=o,a.appendChild(r),n.appendChild(a),t=Math.abs(a.getBoundingClientRect().left-r.children[67].getBoundingClientRect().left)<2,n.fake?Di(n,i):a.remove(),t}(),n),D=e.tMQ?Bi(e.tMQ):Si(e,"tMQ",function(){if(window.matchMedia||window.msMatchMedia)return!0;var t,e=document,n=Hi(),i=Oi(n),a=e.createElement("div"),r=e.createElement("style"),o="@media all and (min-width:1px){.tns-mq-test{position:absolute}}";return r.type="text/css",a.className="tns-mq-test",n.appendChild(r),n.appendChild(a),r.styleSheet?r.styleSheet.cssText=o:r.appendChild(e.createTextNode(o)),t=window.getComputedStyle?window.getComputedStyle(a).position:a.currentStyle.position,n.fake?Di(n,i):a.remove(),"absolute"===t}(),n),r=e.tTf?Bi(e.tTf):Si(e,"tTf",Ki("transform"),n),o=e.t3D?Bi(e.t3D):Si(e,"t3D",function(t){if(!t)return!1;if(!window.getComputedStyle)return!1;var e,n=document,i=Hi(),a=Oi(i),r=n.createElement("p"),o=9<t.length?"-"+t.slice(0,-9).toLowerCase()+"-":"";return o+="transform",i.insertBefore(r,null),r.style[t]="translate3d(1px,1px,1px)",e=window.getComputedStyle(r).getPropertyValue(o),i.fake?Di(i,a):r.remove(),void 0!==e&&0<e.length&&"none"!==e}(r),n),x=e.tTDu?Bi(e.tTDu):Si(e,"tTDu",Ki("transitionDuration"),n),u=e.tTDe?Bi(e.tTDe):Si(e,"tTDe",Ki("transitionDelay"),n),b=e.tADu?Bi(e.tADu):Si(e,"tADu",Ki("animationDuration"),n),l=e.tADe?Bi(e.tADe):Si(e,"tADe",Ki("animationDelay"),n),s=e.tTE?Bi(e.tTE):Si(e,"tTE",Ji(x,"Transition"),n),c=e.tAE?Bi(e.tAE):Si(e,"tAE",Ji(b,"Animation"),n),f=m.console&&"function"==typeof m.console.warn,d=["container","controlsContainer","prevButton","nextButton","navContainer","autoplayButton"],v={};if(d.forEach(function(t){if("string"==typeof H[t]){var e=H[t],n=O.querySelector(e);if(v[t]=e,!n||!n.nodeName)return void(f&&console.warn("Can't find",H[t]));H[t]=n}}),!(H.container.children.length<1)){var k=H.responsive,R=H.nested,I="carousel"===H.mode;if(k){0 in k&&(H=Li(H,k[0]),delete k[0]);var p={};for(var h in k){var w=k[h];w="number"==typeof w?{items:w}:w,p[h]=w}k=p,p=null}if(I||function t(e){for(var n in e)I||("slideBy"===n&&(e[n]="page"),"edgePadding"===n&&(e[n]=!1),"autoHeight"===n&&(e[n]=!1)),"responsive"===n&&t(e[n])}(H),!I){H.axis="horizontal",H.slideBy="page",H.edgePadding=!1;var P=H.animateIn,z=H.animateOut,C=H.animateDelay,W=H.animateNormal}var M,q,F="horizontal"===H.axis,T=O.createElement("div"),j=O.createElement("div"),V=H.container,E=V.parentNode,A=V.outerHTML,G=V.children,Q=G.length,X=rn(),Y=!1;k&&En(),I&&(V.className+=" tns-vpfix");var N,L,B,S,K,J,U,_,Z,$=H.autoWidth,tt=sn("fixedWidth"),et=sn("edgePadding"),nt=sn("gutter"),it=un(),at=sn("center"),rt=$?1:Math.floor(sn("items")),ot=sn("slideBy"),ut=H.viewportMax||H.fixedWidthViewportWidth,lt=sn("arrowKeys"),st=sn("speed"),ct=H.rewind,ft=!ct&&H.loop,dt=sn("autoHeight"),vt=sn("controls"),pt=sn("controlsText"),ht=sn("nav"),mt=sn("touch"),yt=sn("mouseDrag"),gt=sn("autoplay"),xt=sn("autoplayTimeout"),bt=sn("autoplayText"),wt=sn("autoplayHoverPause"),Ct=sn("autoplayResetOnVisibility"),Mt=(U=null,_=sn("nonce"),Z=document.createElement("style"),U&&Z.setAttribute("media",U),_&&Z.setAttribute("nonce",_),document.querySelector("head").appendChild(Z),Z.sheet?Z.sheet:Z.styleSheet),Tt=H.lazyload,Et=H.lazyloadSelector,At=[],Nt=ft?(K=function(){{if($||tt&&!ut)return Q-1;var t=tt?"fixedWidth":"items",e=[];if((tt||H[t]<Q)&&e.push(H[t]),k)for(var n in k){var i=k[n][t];i&&(tt||i<Q)&&e.push(i)}return e.length||e.push(0),Math.ceil(tt?ut/Math.min.apply(null,e):Math.max.apply(null,e))}}(),J=I?Math.ceil((5*K-Q)/2):4*K-Q,J=Math.max(K,J),ln("edgePadding")?J+1:J):0,Lt=I?Q+2*Nt:Q+Nt,Bt=!(!tt&&!$||ft),St=tt?_n():null,Ht=!I||!ft,Ot=F?"left":"top",Dt="",kt="",Rt=tt?function(){return at&&!ft?Q-1:Math.ceil(-St/(tt+nt))}:$?function(){for(var t=0;t<Lt;t++)if(N[t]>=-St)return t}:function(){return at&&I&&!ft?Q-1:ft||I?Math.max(0,Lt-Math.ceil(rt)):Lt-1},It=en(sn("startIndex")),Pt=It,zt=(tn(),0),Wt=$?null:Rt(),qt=H.preventActionWhenRunning,Ft=H.swipeAngle,jt=!Ft||"?",Vt=!1,Gt=H.onInit,Qt=new Zi,Xt=" tns-slider tns-"+H.mode,Yt=V.id||(S=window.tnsId,window.tnsId=S?S+1:1,"tns"+window.tnsId),Kt=sn("disable"),Jt=!1,Ut=H.freezable,_t=!(!Ut||$)&&Tn(),Zt=!1,$t={click:oi,keydown:function(t){t=pi(t);var e=[a.LEFT,a.RIGHT].indexOf(t.keyCode);0<=e&&(0===e?we.disabled||oi(t,-1):Ce.disabled||oi(t,1))}},te={click:function(t){if(Vt){if(qt)return;ai()}var e=hi(t=pi(t));for(;e!==Ae&&!qi(e,"data-nav");)e=e.parentNode;if(qi(e,"data-nav")){var n=Se=Number(Fi(e,"data-nav")),i=tt||$?n*Q/Le:n*rt,a=le?n:Math.min(Math.ceil(i),Q-1);ri(a,t),He===n&&(Pe&&fi(),Se=-1)}},keydown:function(t){t=pi(t);var e=O.activeElement;if(!qi(e,"data-nav"))return;var n=[a.LEFT,a.RIGHT,a.ENTER,a.SPACE].indexOf(t.keyCode),i=Number(Fi(e,"data-nav"));0<=n&&(0===n?0<i&&vi(Ee[i-1]):1===n?i<Le-1&&vi(Ee[i+1]):ri(Se=i,t))}},ee={mouseover:function(){Pe&&(li(),ze=!0)},mouseout:function(){ze&&(ui(),ze=!1)}},ne={visibilitychange:function(){O.hidden?Pe&&(li(),qe=!0):qe&&(ui(),qe=!1)}},ie={keydown:function(t){t=pi(t);var e=[a.LEFT,a.RIGHT].indexOf(t.keyCode);0<=e&&oi(t,0===e?-1:1)}},ae={touchstart:xi,touchmove:bi,touchend:wi,touchcancel:wi},re={mousedown:xi,mousemove:bi,mouseup:wi,mouseleave:wi},oe=ln("controls"),ue=ln("nav"),le=!!$||H.navAsThumbnails,se=ln("autoplay"),ce=ln("touch"),fe=ln("mouseDrag"),de="tns-slide-active",ve="tns-slide-cloned",pe="tns-complete",he={load:function(t){kn(hi(t))},error:function(t){e=hi(t),zi(e,"failed"),Rn(e);var e}},me="force"===H.preventScrollOnTouch;if(oe)var ye,ge,xe=H.controlsContainer,be=H.controlsContainer?H.controlsContainer.outerHTML:"",we=H.prevButton,Ce=H.nextButton,Me=H.prevButton?H.prevButton.outerHTML:"",Te=H.nextButton?H.nextButton.outerHTML:"";if(ue)var Ee,Ae=H.navContainer,Ne=H.navContainer?H.navContainer.outerHTML:"",Le=$?Q:Mi(),Be=0,Se=-1,He=an(),Oe=He,De="tns-nav-active",ke="Carousel Page ",Re=" (Current Slide)";if(se)var Ie,Pe,ze,We,qe,Fe="forward"===H.autoplayDirection?1:-1,je=H.autoplayButton,Ve=H.autoplayButton?H.autoplayButton.outerHTML:"",Ge=["<span class='tns-visually-hidden'>"," animation</span>"];if(ce||fe)var Qe,Xe,Ye={},Ke={},Je=!1,Ue=F?function(t,e){return t.x-e.x}:function(t,e){return t.y-e.y};$||$e(Kt||_t),r&&(Ot=r,Dt="translate",o?(Dt+=F?"3d(":"3d(0px, ",kt=F?", 0px, 0px)":", 0px)"):(Dt+=F?"X(":"Y(",kt=")")),I&&(V.className=V.className.replace("tns-vpfix","")),function(){ln("gutter");T.className="tns-outer",j.className="tns-inner",T.id=Yt+"-ow",j.id=Yt+"-iw",""===V.id&&(V.id=Yt);Xt+=g||$?" tns-subpixel":" tns-no-subpixel",Xt+=y?" tns-calc":" tns-no-calc",$&&(Xt+=" tns-autowidth");Xt+=" tns-"+H.axis,V.className+=Xt,I?((M=O.createElement("div")).id=Yt+"-mw",M.className="tns-ovh",T.appendChild(M),M.appendChild(j)):T.appendChild(j);if(dt){var t=M||j;t.className+=" tns-ah"}if(E.insertBefore(T,V),j.appendChild(V),Ii(G,function(t,e){zi(t,"tns-item"),t.id||(t.id=Yt+"-item"+e),!I&&W&&zi(t,W),ji(t,{"aria-hidden":"true",tabindex:"-1"})}),Nt){for(var e=O.createDocumentFragment(),n=O.createDocumentFragment(),i=Nt;i--;){var a=i%Q,r=G[a].cloneNode(!0);if(zi(r,ve),Vi(r,"id"),n.insertBefore(r,n.firstChild),I){var o=G[Q-1-a].cloneNode(!0);zi(o,ve),Vi(o,"id"),e.appendChild(o)}}V.insertBefore(e,V.firstChild),V.appendChild(n),G=V.children}}(),function(){if(!I)for(var t=It,e=It+Math.min(Q,rt);t<e;t++){var n=G[t];n.style.left=100*(t-It)/rt+"%",zi(n,P),Wi(n,W)}F&&(g||$?(ki(Mt,"#"+Yt+" > .tns-item","font-size:"+m.getComputedStyle(G[0]).fontSize+";",Ri(Mt)),ki(Mt,"#"+Yt,"font-size:0;",Ri(Mt))):I&&Ii(G,function(t,e){var n;t.style.marginLeft=(n=e,y?y+"("+100*n+"% / "+Lt+")":100*n/Lt+"%")}));if(D){if(x){var i=M&&H.autoHeight?hn(H.speed):"";ki(Mt,"#"+Yt+"-mw",i,Ri(Mt))}i=cn(H.edgePadding,H.gutter,H.fixedWidth,H.speed,H.autoHeight),ki(Mt,"#"+Yt+"-iw",i,Ri(Mt)),I&&(i=F&&!$?"width:"+fn(H.fixedWidth,H.gutter,H.items)+";":"",x&&(i+=hn(st)),ki(Mt,"#"+Yt,i,Ri(Mt))),i=F&&!$?dn(H.fixedWidth,H.gutter,H.items):"",H.gutter&&(i+=vn(H.gutter)),I||(x&&(i+=hn(st)),b&&(i+=mn(st))),i&&ki(Mt,"#"+Yt+" > .tns-item",i,Ri(Mt))}else{I&&dt&&(M.style[x]=st/1e3+"s"),j.style.cssText=cn(et,nt,tt,dt),I&&F&&!$&&(V.style.width=fn(tt,nt,rt));var i=F&&!$?dn(tt,nt,rt):"";nt&&(i+=vn(nt)),i&&ki(Mt,"#"+Yt+" > .tns-item",i,Ri(Mt))}if(k&&D)for(var a in k){a=parseInt(a);var r=k[a],i="",o="",u="",l="",s="",c=$?null:sn("items",a),f=sn("fixedWidth",a),d=sn("speed",a),v=sn("edgePadding",a),p=sn("autoHeight",a),h=sn("gutter",a);x&&M&&sn("autoHeight",a)&&"speed"in r&&(o="#"+Yt+"-mw{"+hn(d)+"}"),("edgePadding"in r||"gutter"in r)&&(u="#"+Yt+"-iw{"+cn(v,h,f,d,p)+"}"),I&&F&&!$&&("fixedWidth"in r||"items"in r||tt&&"gutter"in r)&&(l="width:"+fn(f,h,c)+";"),x&&"speed"in r&&(l+=hn(d)),l&&(l="#"+Yt+"{"+l+"}"),("fixedWidth"in r||tt&&"gutter"in r||!I&&"items"in r)&&(s+=dn(f,h,c)),"gutter"in r&&(s+=vn(h)),!I&&"speed"in r&&(x&&(s+=hn(d)),b&&(s+=mn(d))),s&&(s="#"+Yt+" > .tns-item{"+s+"}"),(i=o+u+l+s)&&Mt.insertRule("@media (min-width: "+a/16+"em) {"+i+"}",Mt.cssRules.length)}}(),yn();var _e=ft?I?function(){var t=zt,e=Wt;t+=ot,e-=ot,et?(t+=1,e-=1):tt&&(it+nt)%(tt+nt)&&(e-=1),Nt&&(e<It?It-=Q:It<t&&(It+=Q))}:function(){if(Wt<It)for(;zt+Q<=It;)It-=Q;else if(It<zt)for(;It<=Wt-Q;)It+=Q}:function(){It=Math.max(zt,Math.min(Wt,It))},Ze=I?function(){var e,n,i,a,t,r,o,u,l,s,c;Jn(V,""),x||!st?(ti(),st&&Yi(V)||ai()):(e=V,n=Ot,i=Dt,a=kt,t=Zn(),r=st,o=ai,u=Math.min(r,10),l=0<=t.indexOf("%")?"%":"px",t=t.replace(l,""),s=Number(e.style[n].replace(i,"").replace(a,"").replace(l,"")),c=(t-s)/r*u,setTimeout(function t(){r-=u,s+=c,e.style[n]=i+s+l+a,0<r?setTimeout(t,u):o()},u)),F||Ci()}:function(){At=[];var t={};t[s]=t[c]=ai,_i(G[Pt],t),Ui(G[It],t),ei(Pt,P,z,!0),ei(It,W,P),s&&c&&st&&Yi(V)||ai()};return{version:"2.9.
1713
vendor: 16,842 bytes, line 171
171",getInfo:Ei,events:Qt,goTo:ri,play:function(){gt&&!Pe&&(ci(),We=!1)},pause:function(){Pe&&(fi(),We=!0)},isOn:Y,updateSliderHeight:Fn,refresh:yn,destroy:function(){if(Mt.disabled=!0,Mt.ownerNode&&Mt.ownerNode.remove(),_i(m,{resize:Cn}),lt&&_i(O,ie),xe&&_i(xe,$t),Ae&&_i(Ae,te),_i(V,ee),_i(V,ne),je&&_i(je,{click:di}),gt&&clearInterval(Ie),I&&s){var t={};t[s]=ai,_i(V,t)}mt&&_i(V,ae),yt&&_i(V,re);var r=[A,be,Me,Te,Ne,Ve];for(var e in d.forEach(function(t,e){var n="container"===t?T:H[t];if("object"==typeof n&&n){var i=!!n.previousElementSibling&&n.previousElementSibling,a=n.parentNode;n.outerHTML=r[e],H[t]=i?i.nextElementSibling:a.firstElementChild}}),d=P=z=C=W=F=T=j=V=E=A=G=Q=q=X=$=tt=et=nt=it=rt=ot=ut=lt=st=ct=ft=dt=Mt=Tt=N=At=Nt=Lt=Bt=St=Ht=Ot=Dt=kt=Rt=It=Pt=zt=Wt=Ft=jt=Vt=Gt=Qt=Xt=Yt=Kt=Jt=Ut=_t=Zt=$t=te=ee=ne=ie=ae=re=oe=ue=le=se=ce=fe=de=pe=he=L=vt=pt=xe=be=we=Ce=ye=ge=ht=Ae=Ne=Ee=Le=Be=Se=He=Oe=De=ke=Re=gt=xt=Fe=bt=wt=je=Ve=Ct=Ge=Ie=Pe=ze=We=qe=Ye=Ke=Qe=Je=Xe=Ue=mt=yt=null,this)"rebuild"!==e&&(this[e]=null);Y=!1},rebuild:function(){return $i(Li(H,v))}}}function $e(t){t&&(vt=ht=mt=yt=lt=gt=wt=Ct=!1)}function tn(){for(var t=I?It-Nt:It;t<0;)t+=Q;return t%Q+1}function en(t){return t=t?Math.max(0,Math.min(ft?Q-1:Q-rt,t)):0,I?t+Nt:t}function nn(t){for(null==t&&(t=It),I&&(t-=Nt);t<0;)t+=Q;return Math.floor(t%Q)}function an(){var t,e=nn();return t=le?e:tt||$?Math.ceil((e+1)*Le/Q-1):Math.floor(e/rt),!ft&&I&&It===Wt&&(t=Le-1),t}function rn(){return m.innerWidth||O.documentElement.clientWidth||O.body.clientWidth}function on(t){return"top"===t?"afterbegin":"beforeend"}function un(){var t=et?2*et-nt:0;return function t(e){if(null!=e){var n,i,a=O.createElement("div");return e.appendChild(a),i=(n=a.getBoundingClientRect()).right-n.left,a.remove(),i||t(e.parentNode)}}(E)-t}function ln(t){if(H[t])return!0;if(k)for(var e in k)if(k[e][t])return!0;return!1}function sn(t,e){if(null==e&&(e=X),"items"===t&&tt)return Math.floor((it+nt)/(tt+nt))||1;var n=H[t];if(k)for(var i in k)e>=parseInt(i)&&t in k[i]&&(n=k[i][t]);return"slideBy"===t&&"page"===n&&(n=sn("items")),I||"slideBy"!==t&&"items"!==t||(n=Math.floor(n)),n}function cn(t,e,n,i,a){var r="";if(void 0!==t){var o=t;e&&(o-=e),r=F?"margin: 0 "+o+"px 0 "+t+"px;":"margin: "+t+"px 0 "+o+"px 0;"}else if(e&&!n){var u="-"+e+"px";r="margin: 0 "+(F?u+" 0 0":"0 "+u+" 0")+";"}return!I&&a&&x&&i&&(r+=hn(i)),r}function fn(t,e,n){return t?(t+e)*Lt+"px":y?y+"("+100*Lt+"% / "+n+")":100*Lt/n+"%"}function dn(t,e,n){var i;if(t)i=t+e+"px";else{I||(n=Math.floor(n));var a=I?Lt:n;i=y?y+"(100% / "+a+")":100/a+"%"}return i="width:"+i,"inner"!==R?i+";":i+" !important;"}function vn(t){var e="";!1!==t&&(e=(F?"padding-":"margin-")+(F?"right":"bottom")+": "+t+"px;");return e}function pn(t,e){var n=t.substring(0,t.length-e).toLowerCase();return n&&(n="-"+n+"-"),n}function hn(t){return pn(x,18)+"transition-duration:"+t/1e3+"s;"}function mn(t){return pn(b,17)+"animation-duration:"+t/1e3+"s;"}function yn(){if(ln("autoHeight")||$||!F){var t=V.querySelectorAll("img");Ii(t,function(t){var e=t.src;Tt||(e&&e.indexOf("data:image")<0?(t.src="",Ui(t,he),zi(t,"loading"),t.src=e):kn(t))}),Ai(function(){zn(Gi(t),function(){L=!0})}),ln("autoHeight")&&(t=In(It,Math.min(It+rt-1,Lt-1))),Tt?gn():Ai(function(){zn(Gi(t),gn)})}else I&&$n(),bn(),wn()}function gn(){if($&&1<Q){var i=ft?It:Q-1;!function t(){var e=G[i].getBoundingClientRect().left,n=G[i-1].getBoundingClientRect().right;Math.abs(e-n)<=1?xn():setTimeout(function(){t()},16)}()}else xn()}function xn(){F&&!$||(jn(),$?(St=_n(),Ut&&(_t=Tn()),Wt=Rt(),$e(Kt||_t)):Ci()),I&&$n(),bn(),wn()}function bn(){if(Vn(),T.insertAdjacentHTML("afterbegin",'<div class="tns-liveregion tns-visually-hidden" aria-live="polite" aria-atomic="true">slide <span class="current">'+Hn()+"</span>  of "+Q+"</div>"),B=T.querySelector(".tns-liveregion .current"),se){var t=gt?"stop":"start";je?ji(je,{"data-action":t}):H.autoplayButtonOutput&&(T.insertAdjacentHTML(on(H.autoplayPosition),'<button type="button" data-action="'+t+'">'+Ge[0]+t+Ge[1]+bt[0]+"</button>"),je=T.querySelector("[data-action]")),je&&Ui(je,{click:di}),gt&&(ci(),wt&&Ui(V,ee),Ct&&Ui(V,ne))}if(ue){if(Ae)ji(Ae,{"aria-label":"Carousel Pagination"}),Ii(Ee=Ae.children,function(t,e){ji(t,{"data-nav":e,tabindex:"-1","aria-label":ke+(e+1),"aria-controls":Yt})});else{for(var e="",n=le?"":'style="display:none"',i=0;i<Q;i++)e+='<button type="button" data-nav="'+i+'" tabindex="-1" aria-controls="'+Yt+'" '+n+' aria-label="'+ke+(i+1)+'"></button>';e='<div class="tns-nav" aria-label="Carousel Pagination">'+e+"</div>",T.insertAdjacentHTML(on(H.navPosition),e),Ae=T.querySelector(".tns-nav"),Ee=Ae.children}if(Ti(),x){var a=x.substring(0,x.length-18).toLowerCase(),r="transition: all "+st/1e3+"s";a&&(r="-"+a+"-"+r),ki(Mt,"[aria-controls^="+Yt+"-item]",r,Ri(Mt))}ji(Ee[He],{"aria-label":ke+(He+1)+Re}),Vi(Ee[He],"tabindex"),zi(Ee[He],De),Ui(Ae,te)}oe&&(xe||we&&Ce||(T.insertAdjacentHTML(on(H.controlsPosition),'<div class="tns-controls" aria-label="Carousel Navigation" tabindex="0"><button type="button" data-controls="prev" tabindex="-1" aria-controls="'+Yt+'">'+pt[0]+'</button><button type="button" data-controls="next" tabindex="-1" aria-controls="'+Yt+'">'+pt[1]+"</button></div>"),xe=T.querySelector(".tns-controls")),we&&Ce||(we=xe.children[0],Ce=xe.children[1]),H.controlsContainer&&ji(xe,{"aria-label":"Carousel Navigation",tabindex:"0"}),(H.controlsContainer||H.prevButton&&H.nextButton)&&ji([we,Ce],{"aria-controls":Yt,tabindex:"-1"}),(H.controlsContainer||H.prevButton&&H.nextButton)&&(ji(we,{"data-controls":"prev"}),ji(Ce,{"data-controls":"next"})),ye=Qn(we),ge=Qn(Ce),Kn(),xe?Ui(xe,$t):(Ui(we,$t),Ui(Ce,$t))),An()}function wn(){if(I&&s){var t={};t[s]=ai,Ui(V,t)}mt&&Ui(V,ae,H.preventScrollOnTouch),yt&&Ui(V,re),lt&&Ui(O,ie),"inner"===R?Qt.on("outerResized",function(){Mn(),Qt.emit("innerLoaded",Ei())}):(k||tt||$||dt||!F)&&Ui(m,{resize:Cn}),dt&&("outer"===R?Qt.on("innerLoaded",Pn):Kt||Pn()),Dn(),Kt?Bn():_t&&Ln(),Qt.on("indexChanged",Wn),"inner"===R&&Qt.emit("innerLoaded",Ei()),"function"==typeof Gt&&Gt(Ei()),Y=!0}function Cn(t){Ai(function(){Mn(pi(t))})}function Mn(t){if(Y){"outer"===R&&Qt.emit("outerResized",Ei(t)),X=rn();var e,n=q,i=!1;k&&(En(),(e=n!==q)&&Qt.emit("newBreakpointStart",Ei(t)));var a,r,o,u,l=rt,s=Kt,c=_t,f=lt,d=vt,v=ht,p=mt,h=yt,m=gt,y=wt,g=Ct,x=It;if(e){var b=tt,w=dt,C=pt,M=at,T=bt;if(!D)var E=nt,A=et}if(lt=sn("arrowKeys"),vt=sn("controls"),ht=sn("nav"),mt=sn("touch"),at=sn("center"),yt=sn("mouseDrag"),gt=sn("autoplay"),wt=sn("autoplayHoverPause"),Ct=sn("autoplayResetOnVisibility"),e&&(Kt=sn("disable"),tt=sn("fixedWidth"),st=sn("speed"),dt=sn("autoHeight"),pt=sn("controlsText"),bt=sn("autoplayText"),xt=sn("autoplayTimeout"),D||(et=sn("edgePadding"),nt=sn("gutter"))),$e(Kt),it=un(),F&&!$||Kt||(jn(),F||(Ci(),i=!0)),(tt||$)&&(St=_n(),Wt=Rt()),(e||tt)&&(rt=sn("items"),ot=sn("slideBy"),(r=rt!==l)&&(tt||$||(Wt=Rt()),_e())),e&&Kt!==s&&(Kt?Bn():function(){if(!Jt)return;if(Mt.disabled=!1,V.className+=Xt,$n(),ft)for(var t=Nt;t--;)I&&Xi(G[t]),Xi(G[Lt-t-1]);if(!I)for(var e=It,n=It+Q;e<n;e++){var i=G[e],a=e<It+rt?P:W;i.style.left=100*(e-It)/rt+"%",zi(i,a)}Nn(),Jt=!1}()),Ut&&(e||tt||$)&&(_t=Tn())!==c&&(_t?(ti(Zn(en(0))),Ln()):(!function(){if(!Zt)return;et&&D&&(j.style.margin="");if(Nt)for(var t="tns-transparent",e=Nt;e--;)I&&Wi(G[e],t),Wi(G[Lt-e-1],t);Nn(),Zt=!1}(),i=!0)),$e(Kt||_t),gt||(wt=Ct=!1),lt!==f&&(lt?Ui(O,ie):_i(O,ie)),vt!==d&&(vt?xe?Xi(xe):(we&&Xi(we),Ce&&Xi(Ce)):xe?Qi(xe):(we&&Qi(we),Ce&&Qi(Ce))),ht!==v&&(ht?(Xi(Ae),Ti()):Qi(Ae)),mt!==p&&(mt?Ui(V,ae,H.preventScrollOnTouch):_i(V,ae)),yt!==h&&(yt?Ui(V,re):_i(V,re)),gt!==m&&(gt?(je&&Xi(je),Pe||We||ci()):(je&&Qi(je),Pe&&fi())),wt!==y&&(wt?Ui(V,ee):_i(V,ee)),Ct!==g&&(Ct?Ui(O,ne):_i(O,ne)),e){if(tt===b&&at===M||(i=!0),dt!==w&&(dt||(j.style.height="")),vt&&pt!==C&&(we.innerHTML=pt[0],Ce.innerHTML=pt[1]),je&&bt!==T){var N=gt?1:0,L=je.innerHTML,B=L.length-T[N].length;L.substring(B)===T[N]&&(je.innerHTML=L.substring(0,B)+bt[N])}}else at&&(tt||$)&&(i=!0);if((r||tt&&!$)&&(Le=Mi(),Ti()),(a=It!==x)?(Qt.emit("indexChanged",Ei()),i=!0):r?a||Wn():(tt||$)&&(Dn(),Vn(),Sn()),r&&!I&&function(){for(var t=It+Math.min(Q,rt),e=Lt;e--;){var n=G[e];It<=e&&e<t?(zi(n,"tns-moving"),n.style.left=100*(e-It)/rt+"%",zi(n,P),Wi(n,W)):n.style.left&&(n.style.left="",zi(n,W),Wi(n,P)),Wi(n,z)}setTimeout(function(){Ii(G,function(t){Wi(t,"tns-moving")})},300)}(),!Kt&&!_t){if(e&&!D&&(et===A&&nt===E||(j.style.cssText=cn(et,nt,tt,st,dt)),F)){I&&(V.style.width=fn(tt,nt,rt));var S=dn(tt,nt,rt)+vn(nt);u=Ri(o=Mt)-1,"deleteRule"in o?o.deleteRule(u):o.removeRule(u),ki(Mt,"#"+Yt+" > .tns-item",S,Ri(Mt))}dt&&Pn(),i&&($n(),Pt=It)}e&&Qt.emit("newBreakpointEnd",Ei(t))}}function Tn(){if(!tt&&!$)return Q<=(at?rt-(rt-1)/2:rt);var t=tt?(tt+nt)*Q:N[Q],e=et?it+2*et:it+nt;return at&&(e-=tt?(it-tt)/2:(it-(N[It+1]-N[It]-nt))/2),t<=e}function En(){for(var t in q=0,k)(t=parseInt(t))<=X&&(q=t)}function An(){!gt&&je&&Qi(je),!ht&&Ae&&Qi(Ae),vt||(xe?Qi(xe):(we&&Qi(we),Ce&&Qi(Ce)))}function Nn(){gt&&je&&Xi(je),ht&&Ae&&Xi(Ae),vt&&(xe?Xi(xe):(we&&Xi(we),Ce&&Xi(Ce)))}function Ln(){if(!Zt){if(et&&(j.style.margin="0px"),Nt)for(var t="tns-transparent",e=Nt;e--;)I&&zi(G[e],t),zi(G[Lt-e-1],t);An(),Zt=!0}}function Bn(){if(!Jt){if(Mt.disabled=!0,V.className=V.className.replace(Xt.substring(1),""),Vi(V,["style"]),ft)for(var t=Nt;t--;)I&&Qi(G[t]),Qi(G[Lt-t-1]);if(F&&I||Vi(j,["style"]),!I)for(var e=It,n=It+Q;e<n;e++){var i=G[e];Vi(i,["style"]),Wi(i,P),Wi(i,W)}An(),Jt=!0}}function Sn(){var t=Hn();B.innerHTML!==t&&(B.innerHTML=t)}function Hn(){var t=On(),e=t[0]+1,n=t[1]+1;return e===n?e+"":e+" to "+n}function On(t){null==t&&(t=Zn());var n,i,a,r=It;if(at||et?($||tt)&&(i=-(parseFloat(t)+et),a=i+it+2*et):$&&(i=N[It],a=i+it),$)N.forEach(function(t,e){e<Lt&&((at||et)&&t<=i+.5&&(r=e),.5<=a-t&&(n=e))});else{if(tt){var e=tt+nt;at||et?(r=Math.floor(i/e),n=Math.ceil(a/e-1)):n=r+Math.ceil(it/e)-1}else if(at||et){var o=rt-1;if(at?(r-=o/2,n=It+o/2):n=It+o,et){var u=et*rt/it;r-=u,n+=u}r=Math.floor(r),n=Math.ceil(n)}else n=r+rt-1;r=Math.max(r,0),n=Math.min(n,Lt-1)}return[r,n]}function Dn(){if(Tt&&!Kt){var t=On();t.push(Et),In.apply(null,t).forEach(function(t){if(!Pi(t,pe)){var e={};e[s]=function(t){t.stopPropagation()},Ui(t,e),Ui(t,he),t.src=Fi(t,"data-src");var n=Fi(t,"data-srcset");n&&(t.srcset=n),zi(t,"loading")}})}}function kn(t){zi(t,"loaded"),Rn(t)}function Rn(t){zi(t,pe),Wi(t,"loading"),_i(t,he)}function In(t,e,n){var i=[];for(n||(n="img");t<=e;)Ii(G[t].querySelectorAll(n),function(t){i.push(t)}),t++;return i}function Pn(){var t=In.apply(null,On());Ai(function(){zn(t,Fn)})}function zn(n,t){return L?t():(n.forEach(function(t,e){!Tt&&t.complete&&Rn(t),Pi(t,pe)&&n.splice(e,1)}),n.length?void Ai(function(){zn(n,t)}):t())}function Wn(){Dn(),Vn(),Sn(),Kn(),function(){if(ht&&(He=0<=Se?Se:an(),Se=-1,He!==Oe)){var t=Ee[Oe],e=Ee[He];ji(t,{tabindex:"-1","aria-label":ke+(Oe+1)}),Wi(t,De),ji(e,{"aria-label":ke+(He+1)+Re}),Vi(e,"tabindex"),zi(e,De),Oe=He}}()}function qn(t,e){for(var n=[],i=t,a=Math.min(t+e,Lt);i<a;i++)n.push(G[i].offsetHeight);return Math.max.apply(null,n)}function Fn(){var t=dt?qn(It,rt):qn(Nt,Q),e=M||j;e.style.height!==t&&(e.style.height=t+"px")}function jn(){N=[0];var n=F?"left":"top",i=F?"right":"bottom",a=G[0].getBoundingClientRect()[n];Ii(G,function(t,e){e&&N.push(t.getBoundingClientRect()[n]-a),e===Lt-1&&N.push(t.getBoundingClientRect()[i]-a)})}function Vn(){var t=On(),n=t[0],i=t[1];Ii(G,function(t,e){n<=e&&e<=i?qi(t,"aria-hidden")&&(Vi(t,["aria-hidden","tabindex"]),zi(t,de)):qi(t,"aria-hidden")||(ji(t,{"aria-hidden":"true",tabindex:"-1"}),Wi(t,de))})}function Gn(t){return t.nodeName.toLowerCase()}function Qn(t){return"button"===Gn(t)}function Xn(t){return"true"===t.getAttribute("aria-disabled")}function Yn(t,e,n){t?e.disabled=n:e.setAttribute("aria-disabled",n.toString())}function Kn(){if(vt&&!ct&&!ft){var t=ye?we.disabled:Xn(we),e=ge?Ce.disabled:Xn(Ce),n=It<=zt,i=!ct&&Wt<=It;n&&!t&&Yn(ye,we,!0),!n&&t&&Yn(ye,we,!1),i&&!e&&Yn(ge,Ce,!0),!i&&e&&Yn(ge,Ce,!1)}}function Jn(t,e){x&&(t.style[x]=e)}function Un(t){return null==t&&(t=It),$?(it-(et?nt:0)-(N[t+1]-N[t]-nt))/2:tt?(it-tt)/2:(rt-1)/2}function _n(){var t=it+(et?nt:0)-(tt?(tt+nt)*Lt:N[Lt]);return at&&!ft&&(t=tt?-(tt+nt)*(Lt-1)-Un():Un(Lt-1)-N[Lt-1]),0<t&&(t=0),t}function Zn(t){var e;if(null==t&&(t=It),F&&!$)if(tt)e=-(tt+nt)*t,at&&(e+=Un());else{var n=r?Lt:rt;at&&(t-=Un()),e=100*-t/n}else e=-N[t],at&&$&&(e+=Un());return Bt&&(e=Math.max(e,St)),e+=!F||$||tt?"px":"%"}function $n(t){Jn(V,"0s"),ti(t)}function ti(t){null==t&&(t=Zn()),V.style[Ot]=Dt+t+kt}function ei(t,e,n,i){var a=t+rt;ft||(a=Math.min(a,Lt));for(var r=t;r<a;r++){var o=G[r];i||(o.style.left=100*(r-It)/rt+"%"),C&&u&&(o.style[u]=o.style[l]=C*(r-t)/1e3+"s"),Wi(o,e),zi(o,n),i&&At.push(o)}}function ni(t,e){Ht&&_e(),(It!==Pt||e)&&(Qt.emit("indexChanged",Ei()),Qt.emit("transitionStart",Ei()),dt&&Pn(),Pe&&t&&0<=["click","keydown"].indexOf(t.type)&&fi(),Vt=!0,Ze())}function ii(t){return t.toLowerCase().replace(/-/g,"")}function ai(t){if(I||Vt){if(Qt.emit("transitionEnd",Ei(t)),!I&&0<At.length)for(var e=0;e<At.length;e++){var n=At[e];n.style.left="",l&&u&&(n.style[l]="",n.style[u]=""),Wi(n,z),zi(n,W)}if(!t||!I&&t.target.parentNode===V||t.target===V&&ii(t.propertyName)===ii(Ot)){if(!Ht){var i=It;_e(),It!==i&&(Qt.emit("indexChanged",Ei()),$n())}"inner"===R&&Qt.emit("innerLoaded",Ei()),Vt=!1,Pt=It}}}function ri(t,e){if(!_t)if("prev"===t)oi(e,-1);else if("next"===t)oi(e,1);else{if(Vt){if(qt)return;ai()}var n=nn(),i=0;if("first"===t?i=-n:"last"===t?i=I?Q-rt-n:Q-1-n:("number"!=typeof t&&(t=parseInt(t)),isNaN(t)||(e||(t=Math.max(0,Math.min(Q-1,t))),i=t-n)),!I&&i&&Math.abs(i)<rt){var a=0<i?1:-1;i+=zt<=It+i-Q?Q*a:2*Q*a*-1}It+=i,I&&ft&&(It<zt&&(It+=Q),Wt<It&&(It-=Q)),nn(It)!==nn(Pt)&&ni(e)}}function oi(t,e){if(Vt){if(qt)return;ai()}var n;if(!e){for(var i=hi(t=pi(t));i!==xe&&[we,Ce].indexOf(i)<0;)i=i.parentNode;var a=[we,Ce].indexOf(i);0<=a&&(n=!0,e=0===a?-1:1)}if(ct){if(It===zt&&-1===e)return void ri("last",t);if(It===Wt&&1===e)return void ri("first",t)}e&&(It+=ot*e,$&&(It=Math.floor(It)),ni(n||t&&"keydown"===t.type?t:null))}function ui(){Ie=setInterval(function(){oi(null,Fe)},xt),Pe=!0}function li(){clearInterval(Ie),Pe=!1}function si(t,e){ji(je,{"data-action":t}),je.innerHTML=Ge[0]+t+Ge[1]+e}function ci(){ui(),je&&si("stop",bt[1])}function fi(){li(),je&&si("start",bt[0])}function di(){Pe?(fi(),We=!0):(ci(),We=!1)}function vi(t){t.focus()}function pi(t){return mi(t=t||m.event)?t.changedTouches[0]:t}function hi(t){return t.target||m.event.srcElement}function mi(t){return 0<=t.type.indexOf("touch")}function yi(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function gi(){return a=Ke.y-Ye.y,r=Ke.x-Ye.x,t=Math.atan2(a,r)*(180/Math.PI),e=Ft,n=!1,i=Math.abs(90-Math.abs(t)),90-e<=i?n="horizontal":i<=e&&(n="vertical"),n===H.axis;var t,e,n,i,a,r}function xi(t){if(Vt){if(qt)return;ai()}gt&&Pe&&li(),Je=!0,Xe&&(Ni(Xe),Xe=null);var e=pi(t);Qt.emit(mi(t)?"touchStart":"dragStart",Ei(t)),!mi(t)&&0<=["img","a"].indexOf(Gn(hi(t)))&&yi(t),Ke.x=Ye.x=e.clientX,Ke.y=Ye.y=e.clientY,I&&(Qe=parseFloat(V.style[Ot].replace(Dt,"")),Jn(V,"0s"))}function bi(t){if(Je){var e=pi(t);Ke.x=e.clientX,Ke.y=e.clientY,I?Xe||(Xe=Ai(function(){!function t(e){if(!jt)return void(Je=!1);Ni(Xe);Je&&(Xe=Ai(function(){t(e)}));"?"===jt&&(jt=gi());if(jt){!me&&mi(e)&&(me=!0);try{e.type&&Qt.emit(mi(e)?"touchMove":"dragMove",Ei(e))}catch(t){}var n=Qe,i=Ue(Ke,Ye);if(!F||tt||$)n+=i,n+="px";else{var a=r?i*rt*100/((it+nt)*Lt):100*i/(it+nt);n+=a,n+="%"}V.style[Ot]=Dt+n+kt}}(t)})):("?"===jt&&(jt=gi()),jt&&(me=!0)),("boolean"!=typeof t.cancelable||t.cancelable)&&me&&t.preventDefault()}}function wi(i){if(Je){Xe&&(Ni(Xe),Xe=null),I&&Jn(V,""),Je=!1;var t=pi(i);Ke.x=t.clientX,Ke.y=t.clientY;var a=Ue(Ke,Ye);if(Math.abs(a)){if(!mi(i)){var n=hi(i);Ui(n,{click:function t(e){yi(e),_i(n,{click:t})}})}I?Xe=Ai(function(){if(F&&!$){var t=-a*rt/(it+nt);t=0<a?Math.floor(t):Math.ceil(t),It+=t}else{var e=-(Qe+a);if(e<=0)It=zt;else if(e>=N[Lt-1])It=Wt;else for(var n=0;n<Lt&&e>=N[n];)e>N[It=n]&&a<0&&(It+=1),n++}ni(i,a),Qt.emit(mi(i)?"touchEnd":"dragEnd",Ei(i))}):jt&&oi(i,0<a?-1:1)}}"auto"===H.preventScrollOnTouch&&(me=!1),Ft&&(jt="?"),gt&&!Pe&&ui()}function Ci(){(M||j).style.height=N[It+rt]-N[It]+"px"}function Mi(){var t=tt?(tt+nt)*Q/it:Q/rt;return Math.min(Math.ceil(t),Q)}function Ti(){if(ht&&!le&&Le!==Be){var t=Be,e=Le,n=Xi;for(Le<Be&&(t=Le,e=Be,n=Qi);t<e;)n(Ee[t]),t++;Be=Le}}function Ei(t){return{container:V,slideItems:G,navContainer:Ae,navItems:Ee,controlsContainer:xe,hasControls:oe,prevButton:we,nextButton:Ce,items:rt,slideBy:ot,cloneCount:Nt,slideCount:Q,slideCountNew:Lt,index:It,indexCached:Pt,displayIndex:tn(),navCurrentIndex:He,navCurrentIndexCached:Oe,pages:Le,pagesCached:Be,sheet:Mt,isOn:Y,event:t||{}}}f&&console.warn("No slides found in",H.container)};return $i}();
171
172
173/**
174 * van11y-accessible-simple-tooltip-aria - ES2015 accessible tooltip system, using ARIA
175 * @version v3.0.0
176 * @link https://van11y.net/accessible-simple-tooltip/
177 * @license MIT : https://github.com/nico3333fr/van11y-accessible-simple-tooltip-aria/blob/master/LICENSE
178 */
179"use strict";var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t},loadConfig=function(){var t={},e=function(e,i){t[e]=i},i=function(e){return t[e]},n=function(e){return t[e]};return{set:e,get:i,remove:n}},DATA_HASH_ID="data-hashtooltip-id",pluginConfig=loadConfig(),findById=function(t){var e=arguments.length<=1||void 0===arguments[1]?"":arguments[1];return""!==e?document.querySelector("#"+t+"["+DATA_HASH_ID+'="'+e+'"]'):document.getElementById(t)},addClass=function(t,e){t.classList?t.classList.add(e):t.className+=" "+e},hasClass=function(t,e){return t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)},searchParentHashId=function(t,e){for(var i=!1,n=t;1===n.nodeType&&n&&i===!1;)n.hasAttribute(e)===!0?i=!0:n=n.parentNode;return i===!0?n.getAttribute(e):""},wrapItem=function(t,e,i,n){var o=[e,i].filter(Boolean).join("-"),a=document.createElement("SPAN");return addClass(a,o),a.setAttribute(DATA_HASH_ID,n),t.parentNode.insertBefore(a,t),a.appendChild(t),a},createTooltip=function(t){var e=[t.className,t.tooltipSimpleRaw].filter(Boolean).join("-"),i=t.text;if(!i&&t.id){var n=findById(t.id);n&&(i=n.innerHTML)}return'<span class="'+e+" "+t.jsClass+'" id="'+t.tooltipId+'" '+t.roleTooltip+" "+t.hiddenAttribute+" "+t.hashIdAttribute+">"+i+"</span>"},plugin=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=_extends({TOOLTIP_SIMPLE:"js-simple-tooltip",TOOLTIP_SIMPLE_CONTAINER:"simpletooltip_container",TOOLTIP_SIMPLE_RAW:"simpletooltip",TOOLTIP_SIMPLE_LABEL_ID:"label_simpletooltip_",TOOLTIP_DATA_TEXT:"data-simpletooltip-text",TOOLTIP_DATA_PREFIX_CLASS:"data-simpletooltip-prefix-class",TOOLTIP_DATA_CONTENT_ID:"data-simpletooltip-content-id",ATTR_DESCRIBEDBY:"aria-describedby",ATTR_HIDDEN:"aria-hidden",ATTR_ROLE:"role",ROLE:"tooltip"},t),i=Math.random().toString(32).slice(2,12);pluginConfig.set(i,e);var n=function(){var t=arguments.length<=0||void 0===arguments[0]?document:arguments[0];return[].slice.call(t.querySelectorAll("."+e.TOOLTIP_SIMPLE))},o=function(t){n(t).forEach(function(t){t.setAttribute(DATA_HASH_ID,i);var n=Math.random().toString(32).slice(2,12),o=t.hasAttribute(e.TOOLTIP_DATA_TEXT)===!0?t.getAttribute(e.TOOLTIP_DATA_TEXT):"",a=t.hasAttribute(e.TOOLTIP_DATA_PREFIX_CLASS)===!0?t.getAttribute(e.TOOLTIP_DATA_PREFIX_CLASS):"",r=t.hasAttribute(e.TOOLTIP_DATA_CONTENT_ID)===!0?t.getAttribute(e.TOOLTIP_DATA_CONTENT_ID):"";t.setAttribute(e.ATTR_DESCRIBEDBY,e.TOOLTIP_SIMPLE_LABEL_ID+n),wrapItem(t,a,e.TOOLTIP_SIMPLE_CONTAINER,i).insertAdjacentHTML("beforeEnd",createTooltip({text:o,className:a,jsClass:e.TOOLTIP_SIMPLE,id:r,tooltipId:e.TOOLTIP_SIMPLE_LABEL_ID+n,tooltipSimpleRaw:e.TOOLTIP_SIMPLE_RAW,hiddenAttribute:e.ATTR_HIDDEN+'="true"',roleTooltip:e.ATTR_ROLE+'="'+e.ROLE+'"',hashIdAttribute:DATA_HASH_ID+'="'+i+'"'}))})};return{attach:o}},main=function(){return["mouseenter","focus","mouseleave","blur","keydown"].forEach(function(t){document.body.addEventListener(t,function(e){var i=searchParentHashId(e.target,DATA_HASH_ID);if(""!==i){var n=pluginConfig.get(i);if(hasClass(e.target,n.TOOLTIP_SIMPLE)===!0){var o=e.target;if("mouseenter"===t||"focus"===t){var a=findById(o.getAttribute(n.ATTR_DESCRIBEDBY),i);a&&a.setAttribute(n.ATTR_HIDDEN,"false")}if("mouseleave"===t||"blur"===t||"keydown"===t&&27===e.keyCode){var a=findById(o.getAttribute(n.ATTR_DESCRIBEDBY),i);a&&a.setAttribute(n.ATTR_HIDDEN,"true")}}}},!0)}),plugin};window.van11yAccessibleSimpleTooltipAria=main();var onLoad=function t(){var e=window.van11yAccessibleSimpleTooltipAria();e.attach(),document.removeEventListener("DOMContentLoaded",t)};document.addEventListener("DOMContentLoaded",onLoad);
180/**
181 * throttle
182 */
183const throttle = (fn, delay) => { 
184    let time = Date.now(); 
185    return () => { 
186      if((time + delay - Date.now()) <= 0) { 
187        fn(); 
188        time = Date.now(); 
189      } 
190    } 
191}
192function checkImageBrightness(imageSrc, callback) {
193  const img = document.createElement("img");
194  img.src = imageSrc;
195  img.style.display = "none";
196  document.body.appendChild(img);
197  let colorSum = 0;
198  img.onload = function() {
199    const canvas = document.createElement("canvas");
200    canvas.width = this.width;
201    canvas.height = this.height;
202    const ctx = canvas.getContext("2d");
203    ctx.drawImage(this,0,0);
204    const imageData = ctx.getImageData(0,0,canvas.width,canvas.height);
205    const data = imageData.data;
206    let r,g,b,avg;
207    for(let x = 0, len = data.length; x < len; x+=4) {
208        r = data[x];
209        g = data[x+1];
210        b = data[x+2];
211        avg = Math.floor((r+g+b)/3);
212        colorSum += avg;
213    }
214    var brightness = Math.floor(colorSum / (this.width*this.height));
215    callback(brightness);
216  }
217}
218
219window.addEventListener("load", () => {
220  document.querySelectorAll('.js-check-brightness').forEach(elm => {
221    const source = elm.hasAttribute('src') ? elm.src : elm.srcset;
222    checkImageBrightness(source, function(brightness){
223      /*
224      console.log('source : ' + source);
225      console.log('brightness : ' + brightness);
226      console.log('---------------------------');
227      */
228      if (brightness > 156) elm.classList.add('darker-filter');
229    });
230  })
231});
232/**
233 * Dialog
234 */
235document.addEventListener('click', e => {
236    // Ouverture
237    const trigger = e.target.closest('[data-dialog]');
238    if (trigger) {
239        document.getElementById(trigger.dataset.dialog).showModal();
240    }
241    // Fermeture
242    const closer = e.target.closest('[data-dialog-close]');
243    if (closer) {
244        closer.closest('dialog').close();
245    }
246});
247const elementIsVisibleInViewport = (el, partiallyVisible = false) => {
248  const { top, left, bottom, right } = el.getBoundingClientRect();
249  const { innerHeight, innerWidth } = window;
250  return partiallyVisible
251    ? ((top > 0 && top < innerHeight) ||
252        (bottom > 0 && bottom < innerHeight)) &&
253        ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))
254    : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;
255};
256
257function isScrolled() {
258  if (window.scrollY == 0) {
259    document.body.classList.add('scrolltop');
260  } else {
261    document.body.classList.remove('scrolltop');
262  }
263}
264
265window.addEventListener('scroll', isScrolled);
266isScrolled();
267function myInitMapStatic(obj) {
268    initMapStatic({
269        id: "map" + obj.idProd,
270        signedUrl: window['donneesMap' + obj.idProd][0].urlSignee 
271    });
272}
273
274function initMapStatic(obj) {
275    const targetNode = document.getElementById(obj.id);
276    const mapImg = document.createElement('img');
277    mapImg.src = obj.signedUrl;
278    mapImg.classList.add('map-static');
279
280    if (targetNode.childNodes.length === 0) {
281        targetNode.appendChild(mapImg);
282    } else {
283        targetNode.replaceChild(mapImg, targetNode.childNodes[0]);
284    }
285}
286// Carte de zone (pages pays/régions), si la carte est déjà chargé, alors on la réutilise
287const areaMaps = {};
288async function initMapWithArea(obj) {
289  const container = document.getElementById(obj.id);
290  if (!container) return;
291
292  const cfg = mapboxConfig();
293  const ring = (obj.area || []).map(toLngLat);
294  
295  // Ferme l'anneau du polygone si nécessaire
296  if (ring.length && (ring[0][0] !== ring[ring.length - 1][0] || ring[0][1] !== ring[ring.length - 1][1])) {
297    ring.push(ring[0]);
298  }
299  const geojson = { type: 'Feature', geometry: { type: 'Polygon', coordinates: [ring] } };
300
301  function fit(map) {
302    const bounds = new mapboxgl.LngLatBounds();
303    ring.forEach(c => bounds.extend(c));
304    if (!bounds.isEmpty()) map.fitBounds(bounds, { padding: 24, duration: 0 });
305  }
306
307  // Survol successif des régions : on réutilise la carte, on met juste à jour la zone
308  const existing = areaMaps[obj.id];
309  if (existing) {
310    const update = () => { existing.getSource('area').setData(geojson); fit(existing); };
311    existing.getSource('area') ? update() : existing.once('load', update);
312    return;
313  }
314
315  const map = await createMap(container, { scrollZoom: false });
316  if (!map) return;
317  areaMaps[obj.id] = map;
318  enableModifierScrollZoom(map, container);
319
320  map.on('load', () => {
321    const color = cssVarColor('--base-color', '#000');
322    map.addSource('area', { type: 'geojson', data: geojson });
323    map.addLayer({ id: 'area-fill', type: 'fill', source: 'area', paint: { 'fill-color': color, 'fill-opacity': cfg.areaFillOpacity ?? 0.2 } });
324    map.addLayer({ id: 'area-line', type: 'line', source: 'area', paint: { 'line-color': color, 'line-opacity': cfg.areaLineOpacity ?? 0.8, 'line-width': cfg.areaLineWidth ?? 1 } });
325    fit(map);
326    container.classList.add('is-ready');
327  });
328}
329
330// Carte de liste des suggestions
331const listMaps = {};
332async function initMap(obj) {
333    const container = document.getElementById(obj.id);
334    if (!container) return;
335
336    const cfg = mapboxConfig();
337    const locations = (typeof obj.locations !== "undefined" && obj.locations) ? obj.locations : [];
338
339    // (Re)dessine ligne + marqueurs sur une carte déjà créée
340    function draw(entry) {
341        const map = entry.map;
342        // On enlève le contenu du précédent affichage
343        entry.pins.forEach(pin => pin.remove());
344        entry.pins = [];
345        if (map.getLayer('itineraire-line')) map.removeLayer('itineraire-line');
346        if (map.getSource('itineraire-line')) map.removeSource('itineraire-line');
347
348        if (locations.length === 1) {
349            map.setCenter(toLngLat(locations[0]));
350            entry.pins.push(addPin(map, locations[0]));
351        } else if (locations.length > 1) {
352            addItineraryLine(map, locations, {
353                color: cssVarColor('--pin-color', '#000'),
354                width: cfg.lineWidth ?? 3,
355                dash: cfg.lineDash ?? [0, 2],
356                cap: 'round',
357                join: 'round'
358            });
359            const bounds = new mapboxgl.LngLatBounds();
360            locations.forEach((position, index) => {
361                entry.pins.push(addPin(map, position, () => { if (typeof goToMarker === 'function') goToMarker(index); }));
362                bounds.extend(toLngLat(position));
363            });
364            map.fitBounds(bounds, { padding: 48, duration: 0 });
365        }
366    }
367
368    // Survol successif : on réutilise la carte existante, on redessine juste le contenu
369    const existing = listMaps[obj.id];
370    if (existing) {
371        existing.map.isStyleLoaded() ? draw(existing) : existing.map.once('load', () => draw(existing));
372        return;
373    }
374
375    const zoom = typeof obj.zoom !== "undefined" ? obj.zoom : (cfg.defaultZoom ?? 7);
376    const map = await createMap(container, { zoom });
377    if (!map) return;
378    const entry = { map, pins: [] };
379    listMaps[obj.id] = entry;
380
381    map.on('load', () => {
382        draw(entry);
383        container.classList.add('is-ready');
384    });
385}
386// Convertit { lat, lng } en [lng, lat] (ordre attendu par Mapbox)
387const toLngLat = p => [p.lng, p.lat];
388
389async function createMap(container, options = {}) {
390  if (!window.MAPBOX_TOKEN) {
391    console.warn('Mapbox: token manquant (paramètre Mapbox_Token).');
392    return null;
393  }
394  await loadMapboxGl();
395  mapboxgl.accessToken = window.MAPBOX_TOKEN;
396
397  const mapOptions = { container, ...options };
398  
399  // Style facultatif : sans style définit, Mapbox applique son style par défaut qui est streets v12
400  if (window.MAPBOX_STYLE) mapOptions.style = window.MAPBOX_STYLE;
401  return new mapboxgl.Map(mapOptions);
402}
403
404// Carte non bloquante au scroll de la page : le zoom molette n'est actif qu'avec Ctrl
405function enableModifierScrollZoom(map, container) {
406  container.addEventListener('wheel', (e) => {
407    if (e.ctrlKey || e.metaKey) { e.preventDefault(); map.scrollZoom.enable(); }
408  });
409  container.addEventListener('mouseleave', () => map.scrollZoom.disable());
410}
411
412// Ajoute un marqueur SVG en forme de goutte
413function addPin(map, position, onClick) {
414  const el = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
415  el.setAttribute('width', '26');
416  el.setAttribute('height', '36');
417  el.setAttribute('viewBox', '0 0 26 36');
418  if (position.ville) el.setAttribute('title', position.ville);
419  el.classList.add('itinerary-pin');
420  el.innerHTML = '<path d="M 13.0167 35 C 12.7836 35 12.7171 34.9346 12.3176 33.725 C 11.9848 32.6789 11.4854 31.0769 10.1873 29.1154 C 8.92233 27.1866 7.59085 25.6173 6.32594 24.1135 C 3.36339 20.5174 1 17.7057 1 12.6385 C 1.03329 6.19808 6.39251 1 13.0167 1 C 19.6408 1 25 6.23078 25 12.6385 C 25 17.7057 22.6699 20.55 19.6741 24.1462 C 18.4425 25.65 17.1443 27.2193 15.8793 29.1154 C 14.6144 31.0442 14.0818 32.6135 13.749 33.6596 C 13.3495 34.9346 13.2497 35 13.0167 35 Z" class="itinerary-pin__shape"/>';
421  if (onClick) el.addEventListener('click', onClick);
422  return new mapboxgl.Marker({ element: el, anchor: 'bottom' }).setLngLat(toLngLat(position)).addTo(map);
423}
424
425// Trace une ligne reliant les étapes. style : { color, width, dash, cap, join }
426function addItineraryLine(map, locations, style) {
427  map.addSource('itineraire-line', {
428    type: 'geojson',
429    data: { type: 'Feature', geometry: { type: 'LineString', coordinates: locations.map(toLngLat) } }
430  });
431  map.addLayer({
432    id: 'itineraire-line',
433    type: 'line',
434    source: 'itineraire-line',
435    layout: { 'line-cap': style.cap, 'line-join': style.join },
436    paint: { 'line-color': style.color, 'line-width': style.width, 'line-dasharray': style.dash }
437  });
438}
439
440// Gestion du lazy loading de Mapbox
441let _mapboxGlPromise = null;
442function loadMapboxGl() {
443  if (_mapboxGlPromise) return _mapboxGlPromise;
444  _mapboxGlPromise = new Promise((resolve, reject) => {
445    if (window.mapboxgl) { resolve(window.mapboxgl); return; }
446    const mainScript = document.querySelector('script[src*="main-script.js"]');
447    const base = mainScript ? mainScript.src.split('/js/main-script.js')[0] : '';
448    if (!document.getElementById('mapbox-gl-css')) {
449      const link = document.createElement('link');
450      link.id = 'mapbox-gl-css';
451      link.rel = 'stylesheet';
452      link.href = base + '/css/mapbox-gl.css';
453      document.head.appendChild(link);
454    }
455    const script = document.createElement('script');
456    script.id = 'mapbox-gl-js';
457    script.src = base + '/js/mapbox-gl.js';
458    script.onload = () => {
459      if (window.mapboxgl) resolve(window.mapboxgl);
460      else { _mapboxGlPromise = null; reject(new Error('mapbox-gl.js')); }
461    };
462    script.onerror = () => { _mapboxGlPromise = null; reject(new Error('mapbox-gl failed to load')); };
463    document.head.appendChild(script);
464  });
465  return _mapboxGlPromise;
466}
467
468// Résout une variable CSS couleur (ex. --pin-color) en valeur rgb() exploitable par Mapbox
469function cssVarColor(name, fallback) {
470  const probe = document.createElement('span');
471  probe.style.cssText = 'display:none;color:var(' + name + ');';
472  document.body.appendChild(probe);
473  const value = getComputedStyle(probe).color;
474  probe.remove();
475  return value || fallback;
476}
477
478function mapboxConfig() {
479  const c = window.MAPBOX_CONFIG || {};
480  const dash = (typeof c.lineDash === 'string' && c.lineDash.trim().length)
481    ? c.lineDash.split(',').map(Number)
482    : null;
483  return {
484    defaultZoom: c.defaultZoom,
485    lineWidth: c.lineWidth,
486    lineDash: dash,
487    areaFillOpacity: c.areaFillOpacity,
488    areaLineOpacity: c.areaLineOpacity,
489    areaLineWidth: c.areaLineWidth
490  };
491}
492
493// Carte d'itinéraire produit, section  "jour par jour"
494async function initMapWithScrolledIniterary(obj) {
495  const container = document.getElementById(obj.id);
496 
497  if (!container || container.classList.contains('mapboxgl-map')) return;
498
499  const cfg = mapboxConfig();
500  const locations = obj.locations || [];
501  const markersById = {};
502  let scrolledLocations;
503  let scrolledLocationsMarkerId;
504  let tempVar;
505  let locationsTextOffsetTop = [];
506  
507  function setSelectedMarker(markerId) {
508      Object.keys(markersById).forEach(id => {
509          markersById[id].getElement().classList.toggle('selected', String(id) === String(markerId));
510      });
511  }
512  
513  const map = await createMap(container, { scrollZoom: false });
514  if (!map) return;
515  enableModifierScrollZoom(map, container);
516
517  map.on('load', () => {
518    // Tracé pointillé + cadrage selon le nombre d'étapes
519    if (locations.length > 1) {
520      addItineraryLine(map, locations, {
521        color: cssVarColor('--path-color', '#000'),
522        width: cfg.lineWidth ?? 3,
523        dash: cfg.lineDash ?? [1, 4],
524        cap: 'square',
525        join: 'bevel'
526      });
527      const bounds = new mapboxgl.LngLatBounds();
528      locations.forEach(p => bounds.extend(toLngLat(p)));
529      map.fitBounds(bounds, { padding: 48, duration: 0 });
530    } else if (locations.length === 1) {
531      map.setCenter(toLngLat(locations[0]));
532      map.setZoom(obj.zoom || (cfg.defaultZoom ?? 8)); // 8 = zoom par défaut si non configuré
533    }
534
535    // Marqueurs "jour par jour" : clic => navigation vers l'étape correspondante
536    locations.forEach(position => {
537      markersById[position.id] = addPin(map, position, () => {
538        const etape = document.querySelector('.js-etape:not(.groupe)[data-marker-id="' + position.id + '"]');
539        if (etape) goToEtape(Number(etape.id.split('etape')[1]));
540      });
541    });
542
543    setSelectedMarker(scrolledLocationsMarkerId);
544    container.classList.add('is-ready');
545  });
546
547  document.querySelectorAll('.js-goto-marker').forEach((elem) => {
548    elem.addEventListener('click', e => {
549      const etapeID = e.currentTarget.closest('.js-etape').id.split('etape')[1];
550      goToEtape(Number(etapeID));
551    });
552  });
553
554  function myScrollEvent() {
555    scrolledLocations = locationsTextOffsetTop.filter(monFiltre).length;
556    if (scrolledLocations) {
557      scrolledLocationsMarkerId = document.querySelector('#etape' + scrolledLocations).dataset.markerId;
558    }
559    if (scrolledLocations != tempVar) {
560      setSelectedMarker(scrolledLocationsMarkerId);
561      tempVar = scrolledLocations;
562      document.querySelectorAll('.js-etape').forEach((elem) => elem.classList.remove('active'));
563      if (scrolledLocations) {
564        document.querySelectorAll('.js-etape')[scrolledLocations - 1].classList.add('active');
565      }
566    }
567  }
568
569  function monFiltre(x) {
570    return window.scrollY > x - window.innerHeight / 2;
571  }
572
573  function goToEtape(index) {
574    window.location.hash = "#etape" + index;
575  }
576
577  function myResizeEvent() {
578    locationsTextOffsetTop = [];
579    const etapes = document.querySelectorAll('.js-etape');
580    etapes.forEach((elem) => locationsTextOffsetTop.push(elem.getBoundingClientRect().top + window.scrollY));
581    map.resize();
582  }
583
584  window.addEventListener('scroll', throttle(myScrollEvent, 100));
585  window.addEventListener('resize', throttle(myResizeEvent, 100));
586  myResizeEvent();
587  myScrollEvent();
588}
589
590function myInitMap(idMap) {
591    initMap({
592        id: "map" + idMap,
593        locations: eval("donneesMap" + idMap)
594    });
595}
596
597(function () {
598    function smoothScrollTo(targetY, duration = 1200) {
599        const startY = window.scrollY;
600        const distance = targetY - startY;
601        const startTime = performance.now();
602
603        function easeInOutCubic(t) {
604            return t < 0.5
605                ? 4 * t * t * t
606                : 1 - Math.pow(-2 * t + 2, 3) / 2;
607        }
608
609        function animation(currentTime) {
610            const elapsed = currentTime - startTime;
611            const progress = Math.min(elapsed / duration, 1);
612            const easedProgress = easeInOutCubic(progress);
613            window.scrollTo(0, startY + distance * easedProgress);
614            if (elapsed < duration) {
615                requestAnimationFrame(animation);
616            }
617        }
618
619        requestAnimationFrame(animation);
620    }
621
622    document.querySelectorAll('a[data-smooth-scroll-to]').forEach(link => {
623        link.addEventListener('click', function (e) {
624            const targetId = this.getAttribute('href').slice(1);
625            const target = document.getElementById(targetId);
626
627            if (!target) return;
628
629            e.preventDefault();
630            const duration = parseInt(this.dataset.duration) || 1200;
631            const scrollMargin = parseInt(getComputedStyle(target).scrollMarginTop) || 0;
632            smoothScrollTo(target.getBoundingClientRect().top + window.scrollY - scrollMargin, duration);
633        });
634    });
635})();

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.