PageSourceSearch

https://everymum.ie/_static/??-eJydjsEOgjAQRH/IshiJhIPxW2q7JcV2t+m…WASGLO3j+qDxSw1Jf48uMfbue+Hdmgv1256A2VLgiU=

js everymum.ie collected 2026-09-24 18:23:29 UTC 79,396 bytes, 1,181 lines download raw bytes

vendor: 7,201 bytes, line 1
1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r=n(1),a=(o(r),n(6)),u=o(a),c=n(7),f=o(c),s=n(8),d=o(s),l=n(9),p=o(l),m=n(10),b=o(m),v=n(11),y=o(v),g=n(14),h=o(g),w=[],k=!1,x={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,startEvent:"DOMContentLoaded",throttleDelay:99,debounceDelay:50,disableMutationObserver:!1},j=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},_=function(){w.forEach(function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")})},S=function(e){return e===!0||"mobile"===e&&p.default.mobile()||"phone"===e&&p.default.phone()||"tablet"===e&&p.default.tablet()||"function"==typeof e&&e()===!0},z=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?_():(document.querySelector("body").setAttribute("data-aos-easing",x.easing),document.querySelector("body").setAttribute("data-aos-duration",x.duration),document.querySelector("body").setAttribute("data-aos-delay",x.delay),"DOMContentLoaded"===x.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?j(!0):"load"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener("resize",(0,f.default)(j,x.debounceDelay,!0)),window.addEventListener("orientationchange",(0,f.default)(j,x.debounceDelay,!0)),window.addEventListener("scroll",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||(0,d.default)("[data-aos]",O),w)};e.exports={init:z,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){"use strict";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(s,t),_?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function s(){var e=O();return c(e)?d(e):void(h=setTimeout(s,a(e)))}function d(e){return h=void 0,z&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(s,t),o(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,k=0,_=!1,S=!1,z=!0;if("function"!=typeof e)throw new TypeError(f);return t=u(t)||0,i(n)&&(_=!!n.leading,S="maxWait"in n,y=S?x(u(n.maxWait)||0,t):y,z="trailing"in n?!!n.trailing:z),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if("function"!=typeof e)throw new TypeError(f);return i(o)&&(r="leading"in o?!!o.leading:r,a="trailing"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t="undefined"==typeof e?"undefined":c(e);return!!e&&("object"==t||"function"==t)}function r(e){return!!e&&"object"==("undefined"==typeof e?"undefined":c(e))}function a(e){return"symbol"==("undefined"==typeof e?"undefined":c(e))||r(e)&&k.call(e)==d}function u(e){if("number"==typeof e)return e;if(a(e))return s;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?s:+e}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f="Expected a function",s=NaN,d="[object Symbol]",l=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y="object"==("undefined"==typeof t?"undefined":c(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":c(self))&&self&&self.Object===Object&&self,h=y||g||Function("return this")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(s,t),_?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function f(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function s(){var e=j();return f(e)?d(e):void(h=setTimeout(s,u(e)))}function d(e){return h=void 0,z&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=f(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(s,t),i(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,O=0,_=!1,S=!1,z=!0;if("function"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(_=!!n.leading,S="maxWait"in n,y=S?k(a(n.maxWait)||0,t):y,z="trailing"in n?!!n.trailing:z),m.cancel=l,m.flush=p,m}function o(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||i(e)&&w.call(e)==s}function a(e){if("number"==typeof e)return e;if(r(e))return f;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?f:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c="Expected a function",f=NaN,s="[object Symbol]",d=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v="object"==("undefined"==typeof t?"undefined":u(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,g=v||y||Function("return this")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function n(e,t){var n=window.document,r=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,a=new r(o);i=t,a.observe(n.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}function o(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),n=Array.prototype.slice.call(e.removedNodes
1),o=t.concat(n).filter(function(e){return e.hasAttribute&&e.hasAttribute("data-aos")}).length;o&&i()})}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){};t.default=n},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(){return navigator.userAgent||navigator.vendor||window.opera||""}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,a=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,u=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,c=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
1sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,f=function(){function e(){n(this,e)}return i(e,[{key:"phone",value:function(){var e=o();return!(!r.test(e)&&!a.test(e.substr(0,4)))}},{key:"mobile",value:function(){var e=o();return!(!u.test(e)&&!c.test(e.substr(0,4)))}},{key:"tablet",value:function(){return this.mobile()&&!this.phone()}}]),e}();t.default=new f},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e,t,n){var o=e.node.getAttribute("data-aos-once");t>e.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add("aos-init"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case"top-bottom":break;case"center-bottom":n+=e.offsetHeight/2;break;case"bottom-bottom":n+=e.offsetHeight;break;case"top-center":n+=i/2;break;case"bottom-center":n+=i/2+e.offsetHeight;break;case"center-center":n+=i/2+e.offsetHeight/2;break;case"top-top":n+=i;break;case"bottom-top":n+=e.offsetHeight+i;break;case"center-top":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){return e=e||document.querySelectorAll("[data-aos]"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});;
2/*!
3 * Infinite Scroll PACKAGED v4.0.1
4 * Automatically add next page
5 *
6 * Licensed GPLv3 for open source use
7 * or Infinite Scroll Commercial License for commercial use
8 *
9 * https://infinite-scroll.com
10 * Copyright 2018-2020
vendor: 22,312 bytes, lines 10-18
10 Metafizzy
11 */
12!function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,(function(t,e){let i=t.console,n=void 0===i?function(){}:function(t){i.error(t)};return function(i,o,s){(s=s||e||t.jQuery)&&(o.prototype.option||(o.prototype.option=function(t){t&&(this.options=Object.assign(this.options||{},t))}),s.fn[i]=function(t,...e){return"string"==typeof t?function(t,e,o){let r,l=`$().${i}("${e}")`;return t.each((function(t,h){let a=s.data(h,i);if(!a)return void n(`${i} not initialized. Cannot call method ${l}`);let c=a[e];if(!c||"_"==e.charAt(0))return void n(`${l} is not a valid method`);let u=c.apply(a,o);r=void 0===r?u:r})),void 0!==r?r:t}(this,t,e):(r=t,this.each((function(t,e){let n=s.data(e,i);n?(n.option(r),n._init()):(n=new o(e,r),s.data(e,i,n))})),this);var r})}})),function(t,e){"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,(function(){function t(){}let e=t.prototype;return e.on=function(t,e){if(!t||!e)return this;let i=this._events=this._events||{},n=i[t]=i[t]||[];return n.includes(e)||n.push(e),this},e.once=function(t,e){if(!t||!e)return this;this.on(t,e);let i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this},e.off=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;let n=i.indexOf(e);return-1!=n&&i.splice(n,1),this},e.emitEvent=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;i=i.slice(0),e=e||[];let n=this._onceEvents&&this._onceEvents[t];for(let o of i){n&&n[o]&&(this.off(t,o),delete n[o]),o.apply(this,e)}return this},e.allOff=function(){return delete this._events,delete this._onceEvents,this},t})),function(t,e){"object"==typeof module&&module.exports?module.exports=e(t):t.fizzyUIUtils=e(t)}(this,(function(t){let e={extend:function(t,e){return Object.assign(t,e)},modulo:function(t,e){return(t%e+e)%e},makeArray:function(t){if(Array.isArray(t))return t;if(null==t)return[];return"object"==typeof t&&"number"==typeof t.length?[...t]:[t]},removeFrom:function(t,e){let i=t.indexOf(e);-1!=i&&t.splice(i,1)},getParent:function(t,e){for(;t.parentNode&&t!=document.body;)if((t=t.parentNode).matches(e))return t},getQueryElement:function(t){return"string"==typeof t?document.querySelector(t):t},handleEvent:function(t){let e="on"+t.type;this[e]&&this[e](t)},filterFindElements:function(t,i){return(t=e.makeArray(t)).filter((t=>t instanceof HTMLElement)).reduce(((t,e)=>{if(!i)return t.push(e),t;e.matches(i)&&t.push(e);let n=e.querySelectorAll(i);return t=t.concat(...n)}),[])},debounceMethod:function(t,e,i){i=i||100;let n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){clearTimeout(this[o]);let t=arguments;this[o]=setTimeout((()=>{n.apply(this,t),delete this[o]}),i)}},docReady:function(t){let e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},toDashed:function(t){return t.replace(/(.)([A-Z])/g,(function(t,e,i){return e+"-"+i})).toLowerCase()}},i=t.console;return e.htmlInit=function(n,o){e.docReady((function(){let s="data-"+e.toDashed(o),r=document.querySelectorAll(`[${s}]`),l=t.jQuery;[...r].forEach((t=>{let e,r=t.getAttribute(s);try{e=r&&JSON.parse(r)}catch(e){return void(i&&i.error(`Error parsing ${s} on ${t.className}: ${e}`))}let h=new n(t,e);l&&l.data(t,o,h)}))}))},e})),function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("fizzy-ui-utils")):t.InfiniteScroll=e(t,t.EvEmitter,t.fizzyUIUtils)}(window,(function(t,e,i){let n=t.jQuery,o={};function s(t,e){let r=i.getQueryElement(t);if(r){if((t=r).infiniteScrollGUID){let i=o[t.infiniteScrollGUID];return i.option(e),i}this.element=t,this.options={...s.defaults},this.option(e),n&&(this.$element=n(this.element)),this.create()}else console.error("Bad element for InfiniteScroll: "+(r||t))}s.defaults={},s.create={},s.destroy={};let r=s.prototype;Object.assign(r,e.prototype);let l=0;r.create=function(){let t=this.guid=++l;if(this.element.infiniteScrollGUID=t,o[t]=this,this.pageIndex=1,this.loadCount=0,this.updateGetPath(),this.getPath&&this.getPath()){this.updateGetAbsolutePath(),this.log("initialized",[this.element.className]),this.callOnInit();for(let t in s.create)s.create[t].call(this)}else console.error("Disabling InfiniteScroll")},r.option=function(t){Object.assign(this.options,t)},r.callOnInit=function(){let t=this.options.onInit;t&&t.call(this,this)},r.dispatchEvent=function(t,e,i){this.log(t,i);let o=e?[e].concat(i):i;if(this.emitEvent(t,o),!n||!this.$element)return;let s=t+=".infiniteScroll";if(e){let i=n.Event(e);i.type=t,s=i}this.$element.trigger(s,i)};let h={initialized:t=>`on ${t}`,request:t=>`URL: ${t}`,load:(t,e)=>`${t.title||""}. URL: ${e}`,error:(t,e)=>`${t}. URL: ${e}`,append:(t,e,i)=>`${i.length} items. URL: ${e}`,last:(t,e)=>`URL: ${e}`,history:(t,e)=>`URL: ${e}`,pageIndex:function(t,e){return`current page determined to be: ${t} from ${e}`}};r.log=function(t,e){if(!this.options.debug)return;let i=`[InfiniteScroll] ${t}`,n=h[t];n&&(i+=". "+n.apply(this,e)),console.log(i)},r.updateMeasurements=function(){this.windowHeight=t.innerHeight;let e=this.element.getBoundingClientRect();this.top=e.top+t.scrollY},r.updateScroller=function(){let e=this.options.elementScroll;if(e){if(this.scroller=!0===e?this.element:i.getQueryElement(e),!this.scroller)throw new Error(`Unable to find elementScroll: ${e}`)}else this.scroller=t},r.updateGetPath=function(){let t=this.options.path;if(!t)return void console.error(`InfiniteScroll path option required. Set as: ${t}`);let e=typeof t;"function"!=e?"string"==e&&t.match("{{#}}")?this.updateGetPathTemplate(t):this.updateGetPathSelector(t):this.getPath=t},r.updateGetPathTemplate=function(t){this.getPath=()=>{let e=this.pageIndex+1;return t.replace("{{#}}",e)};let e=t.replace(/(\\\?|\?)/,"\\?").replace("{{#}}","(\\d\\d?\\d?)"),i=new RegExp(e),n=location.href.match(i);n&&(this.pageIndex=parseInt(n[1],10),this.log("pageIndex",[this.pageIndex,"template string"]))};let a=[/^(.*?\/?page\/?)(\d\d?\d?)(.*?$)/,/^(.*?\/?\?page=)(\d\d?\d?)(.*?$)/,/(.*?)(\d\d?\d?)(?!.*\d)(.*?$)/],c=s.getPathParts=function(t){if(t)for(let e of a){let i=t.match(e);if(i){let[,t,e,n]=i;return{begin:t,index:e,end:n}}}};r.updateGetPathSelector=function(t){let e=document.querySelector(t);if(!e)return void console.error(`Bad InfiniteScroll path option. Next link not found: ${t}`);let i=e.getAttribute("href"),n=c(i);if(!n)return void console.error(`InfiniteScroll unable to parse next link href: ${i}`);let{begin:o,index:s,end:r}=n;this.isPathSelector=!0,this.getPath=()=>o+(this.pageIndex+1)+r,this.pageIndex=parseInt(s,10)-1,this.log("pageIndex",[this.pageIndex,"next link"])},r.updateGetAbsolutePath=function(){let t=this.getPath();if(t.match(/^http/)||t.match(/^\//))return void(this.getAbsolutePath=this.getPath);let{pathname:e}=location,i=t.match(/^\?/),n=e.substring(0,e.lastIndexOf("/")),o=i?e:n+"/";this.getAbsolutePath=()=>o+this.getPath()},s.create.hideNav=function(){let t=i.getQueryElement(this.options.hideNav);t&&(t.style.display="none",this.nav=t)},s.destroy.hideNav=function(){this.nav&&(this.nav.style.display="")},r.destroy=function(){this.allOff();for(let t in s.destroy)s.destroy[t].call(this);delete this.element.infiniteScrollGUID,delete o[this.guid],n&&this.$element&&n.removeData(this.element,"infiniteScroll")},s.throttle=function(t,e){let i,n;return e=e||200,function(){let o=+new Date,s=arguments,r=()=>{i=o,t.apply(this,s)};i&&o<i+e?(clearTimeout(n),n=setTimeout(r,e)):r()}},s.data=function(t){let e=(t=i.getQueryElement(t))&&t.infiniteScrollGUID;return e&&o[e]},s.setJQuery=function(t){n=t},i.htmlInit(s,"infinite-scroll"),r._init=function(){};let{jQueryBridget:u}=t;return n&&u&&u("infiniteScroll",s,n),s})),function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("./core")):e(t,t.InfiniteScroll)}(window,(function(t,e){let i=e.prototype;Object.assign(e.defaults,{loadOnScroll:!0,checkLastPage:!0,responseBody:"text",domParseResponse:!0}),e.create.pageLoad=function(){this.canLoad=!0,this.on("scrollThreshold",this.onScrollThresholdLoad),this.on("load",this.checkLastPage),this.options.outlayer&&this.on("append",this.onAppendOutlayer)},i.onScrollThresholdLoad=function(){this.options.loadOnScroll&&this.loadNextPage()};let n=new DOMParser;function o(t){let e=document.createDocumentFragment();return t&&e.append(...t),e}return i.loadNextPage=function(){if(this.isLoading||!this.canLoad)return;let{responseBody:t,domParseResponse:e,fetchOptions:i}=this.options,o=this.getAbsolutePath();this.isLoading=!0,"function"==typeof i&&(i=i());let s=fetch(o,i).then((i=>{if(!i.ok){let t=new Error(i.statusText);return this.onPageError(t,o,i),{response:i}}return i[t]().then((s=>("text"==t&&e&&(s=n.parseFromString(s,"text/html")),204==i.status?(this.lastPageReached(s,o),{body:s,response:i}):this.onPageLoad(s,o,i))))})).catch((t=>{this.onPageError(t,o)}));return this.dispatchEvent("request",null,[o,s]),s},i.onPageLoad=function(t,e,i){return this.options.append||(this.isLoading=!1),this.pageIndex++,this.loadCount++,this.dispatchEvent("load",null,[t,e,i]),this.appendNextPage(t,e,i)},i.appendNextPage=function(t,e,i){let{append:n,responseBody:s,domParseResponse:r}=this.options;if(!("text"==s&&r)||!n)return{body:t,response:i};let l=t.querySelectorAll(n),h={body:t,response:i,items:l};if(!l||!l.length)return this.lastPageReached(t,e),h;let a=o(l),c=()=>(this.appendItems(l,a),this.isLoading=!1,this.dispatchEvent("append",null,[t,e,l,i]),h);return this.options.outlayer?this.appendOutlayerItems(a,c):c()},i.appendItems=function(t,e){t&&t.length&&(function(t){let e=t.querySelectorAll("script");for(let t of e){let e=document.createElement("script"),i=t.attributes;for(let t of i)e.setAttribute(t.name,t.value);e.innerHTML=t.innerHTML,t.parentNode.replaceChild(e,t)}}(e=e||o(t)),this.element.appendChild(e))},i.appendOutlayerItems=function(i,n){let o=e.imagesLoaded||t.imagesLoaded;return o?new Promise((function(t){o(i,(function(){let e=n();t(e)}))})):(console.error("[InfiniteScroll] imagesLoaded required for outlayer option"),void(this.isLoading=!1))},i.onAppendOutlayer=function(t,e,i){this.options.outlayer.appended(i)},i.checkLastPage=function(t,e){let i,{checkLastPage:n,path:o}=this.options;if(n){if("function"==typeof o){if(!this.getPath())return void this.lastPageReached(t,e)}"string"==typeof n?i=n:this.isPathSelector&&(i=o),i&&t.querySelector&&(t.querySelector(i)||this.lastPageReached(t,e))}},i.lastPageReached=function(t,e){this.canLoad=!1,this.dispatchEvent("last",null,[t,e])},i.onPageError=function(t,e,i){return this.isLoading=!1,this.canLoad=!1,this.dispatchEvent("error",null,[t,e,i]),t},e.create.prefill=function(){if(!this.options.prefill)return;let t=this.options.append;t?(this.updateMeasurements(),this.updateScroller(),this.isPrefilling=!0,this.on("append",this.prefill),this.once("error",this.stopPrefill),this.once("last",this.stopPrefill),this.prefill()):console.error(`append option required for prefill. Set as :${t}`)},i.prefill=function(){let t=this.getPrefillDistance();this.isPrefilling=t>=0,this.isPrefilling?(this.log("prefill"),this.loadNextPage()):this.stopPrefill()},i.getPrefillDistance=function(){return this.options.elementScroll?this.scroller.clientHeight-this.scroller.scrollHeight:this.windowHeight-this.element.clientHeight},i.stopPrefill=function(){this.log("stopPrefill"),this.off("append",this.prefill)},e})),function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("./core"),require("fizzy-ui-utils")):e(t,t.InfiniteScroll,t.fizzyUIUtils)}(window,(function(t,e,i){let n=e.prototype;return Object.assign(e.defaults,{scrollThreshold:400}),e.create.scrollWatch=function(){this.pageScrollHandler=this.onPageScroll.bind(this),this.resizeHandler=this.onResize.bind(this);let t=this.options.scrollThreshold;(t||0===t)&&this.enableScrollWatch()},e.destroy.scrollWatch=function(){this.disableScrollWatch()},n.enableScrollWatch=function(){this.isScrollWatching||(this.isScrollWatching=!0,this.updateMeasurements(),this.updateScroller(),this.on("last",this.disableScrollWatch),this.bindScrollWatchEvents(!0))},n.disableScrollWatch=function(){this.isScrollWatching&&(this.bindScrollWatchEvents(!1),delete this.isScrollWatching)},n.bindScrollWatchEvents=function(e){let i=e?"addEventListener":"removeEventListener";this.scroller[i]("scroll",this.pageScrollHandler),t[i]("resize",this.resizeHandler)},n.onPageScroll=e.throttle((function(){this.getBottomDistance()<=this.options.scrollThreshold&&this.dispatchEvent("scrollThreshold")})),n.getBottomDistance=function(){let e,i;return this.options.elementScroll?(e=this.scroller.scrollHeight,i=this.scroller.scrollTop+this.scroller.clientHeight):(e=this.top+this.element.clientHeight,i=t.scrollY+this.windowHeight),e-i},n.onResize=function(){this.updateMeasurements()},i.debounceMethod(e,"onResize",150),e})),function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("./core"),require("fizzy-ui-utils")):e(t,t.InfiniteScroll,t.fizzyUIUtils)}(window,(function(t,e,i){let n=e.prototype;Object.assign(e.defaults,{history:"replace"});let o=document.createElement("a");return e.create.history=function(){if(!this.options.history)return;o.href=this.getAbsolutePath(),(o.origin||o.protocol+"//"+o.host)==location.origin?this.options.append?this.createHistoryAppend():this.createHistoryPageLoad():console.error(`[InfiniteScroll] cannot set history with different origin: ${o.origin} on ${location.origin} . History behavior disabled.`)},n.createHistoryAppend=function(){this.updateMeasurements(),this.updateScroller(),this.scrollPages=[{top:0,path:location.href,title:document.title}],this.scrollPage=this.scrollPages[0],this.scrollHistoryHandler=this.onScrollHistory.bind(this),this.unloadHandler=this.onUnload.bind(this),this.scroller.addEventListener("scroll",this.scrollHistoryHandler),this.on("append",this.onAppendHistory),this.bindHistoryAppendEvents(!0)},n.bindHistoryAppendEvents=function(e){let i=e?"addEventListener":"removeEventListener";this.scroller[i]("scroll",this.scrollHistoryHandler),t[i]("unload",this.unloadHandler)},n.createHistoryPageLoad=function(){this.on("load",this.onPageLoadHistory)},e.destroy.history=n.destroyHistory=function(){this.options.history&&this.options.append&&this.bindHistoryAppendEvents(!1)},n.onAppendHistory=function(t,e,i){if(!i||!i.length)return;let n=i[0],s=this.getElementScrollY(n);o.href=e,this.scrollPages.push({top:s,path:o.href,title:t.title})},n.getElementScrollY=function(e){if(this.options.elementScroll)return e.offsetTop-this.top;return e.getBoundingClientRect().top+t.scrollY},n.onScrollHistory=function(){let t=this.getClosestScrollPage();t!=this.scrollPage&&(this.scrollPage=t,this.setHistory(t.title,t.path))},i.debounceMethod(e,"onScrollHistory",150),n.getClosestScrollPage=function(){let e,i;e=this.options.elementScroll?this.scroller.scrollTop+this.scroller.clientHeight/2:t.scrollY+this.windowHeight/2;for(let t of this.scrollPages){if(t.top>=e)break;i=t}return i},n.setHistory=function(t,e){let i=this.options.history;i&&history[i+"State"]&&(history[i+"State"](null,t,e),this.options.historyTitle&&(document.title=t),this.dispatchEvent("history",null,[t,e]))},n.onUnload=function(){if(0===this.scrollPage.top)return;let e=t.scrollY-this.scrollPage.top+this.top;this.destroyHistory(),scrollTo(0,e)},n.onPageLoadHistory=function(t,e){this.setHistory(t.title,e)},e})),function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("./core"),require("fizzy-ui-utils")):e(t,t.InfiniteScroll,t.fizzyUIUtils)}(window,(function(t,e,i){class n{constructor(t,e){this.element=t,this.infScroll=e,this.clickHandler=this.onClick.bind(this),this.element.addEventListener("click",this.clickHandler),e.on("request",this.disable.bind(this)),e.on("load",this.enable.bind(this)),e.on("error",this.hide.bind(this)),e.on("last",this.hide.bind(this))}onClick(t){t.preventDefault(),this.infScroll.loadNextPage()}enable(){this.element.removeAttribute("disabled")}disable(){this.element.disabled="disabled"}hide(){this.element.style.display="none"}destroy(){this.element.removeEventListener("click",this.clickHandler)}}return e.create.button=function(){let t=i.getQueryElement(this.options.button);t&&(this.button=new n(t,this))},e.destroy.button=function(){this.button&&this.button.destroy()},e.Button=n,e})),function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("./core"),require("fizzy-ui-utils")):e(t,t.InfiniteScroll,t.fizzyUIUtils)}(window,(function(t,e,i){let n=e.prototype;function o(t){r(t,"none")}function s(t){r(t,"block")}function r(t,e){t&&(t.style.display=e)}return e.create.status=function(){let t=i.getQueryElement(this.options.status);t&&(this.statusElement=t,this.statusEventElements={request:t.querySelector(".infinite-scroll-request"),error:t.querySelector(".infinite-scroll-error"),last:t.querySelector(".infinite-scroll-last")},this.on("request",this.showRequestStatus),this.on("error",this.showErrorStatus),this.on("last",this.showLastStatus),this.bindHideStatus("on"))},n.bindHideStatus=function(t){let e=this.options.append?"append":"load";this[t](e,this.hideAllStatus)},n.showRequestStatus=function(){this.showStatus("request")},n.showErrorStatus=function(){this.showStatus("error")},n.showLastStatus=function(){this.showStatus("last"),this.bindHideStatus("off")},n.showStatus=function(t){s(this.statusElement),this.hideStatusEventElements(),s(this.statusEventElements[t])},n.hideAllStatus=function(){o(this.statusElement),this.hideStatusEventElements()},n.hideStatusEventElements=function(){for(let t in this.statusEventElements){o(this.statusEventElements[t])}},e})),
13/*!
14 * imagesLoaded v4.1.4
15 * JavaScript is all like "You images are done yet or what?"
16 * MIT License
17 */
18function(t,e){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],(function(i){return e(t,i)})):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,(function(t,e){"use strict";var i=t.jQuery,n=t.console;function o(t,e){for(var i in e)t[i]=e[i];return t}var s=Array.prototype.slice;function r(t,e,l){if(!(this instanceof r))return new r(t,e,l);var h,a=t;("string"==typeof t&&(a=document.querySelectorAll(t)),a)?(this.elements=(h=a,Array.isArray(h)?h:"object"==typeof h&&"number"==typeof h.length?s.call(h):[h]),this.options=o({},this.options),"function"==typeof e?l=e:o(this.options,e),l&&this.on("always",l),this.getImages(),i&&(this.jqDeferred=new i.Deferred),setTimeout(this.check.bind(this))):n.error("Bad element for imagesLoaded "+(a||t))}r.prototype=Object.create(e.prototype),r.prototype.options={},r.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},r.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&l[e]){for(var i=t.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var s=t.querySelectorAll(this.options.background);for(n=0;n<s.length;n++){var r=s[n];this.addElementBackgroundImages(r)}}}};var l={1:!0,9:!0,11:!0};function h(t){this.img=t}function a(t,e){this.url=t,this.element=e,this.img=new Image}return r.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(e.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,t),n=i.exec(e.backgroundImage)}},r.prototype.addImage=function(t){var e=new h(t);this.images.push(e)},r.prototype.addBackground=function(t,e){var i=new a(t,e);this.images.push(i)},r.prototype.check=function(){var t=this;function e(e,i,n){setTimeout((function(){t.progress(e,i,n)}))}this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?this.images.forEach((function(t){t.once("progress",e),t.check()})):this.complete()},r.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&n&&n.log("progress: "+i,t,e)},r.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},h.prototype=Object.create(e.prototype),h.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.src)},h.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},h.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},h.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},h.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},h.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},h.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},a.prototype=Object.create(h.prototype),a.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},a.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},a.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},r.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&((i=e).fn.imagesLoaded=function(t,e){return new r(this,t,e).jqDeferred.promise(i(this))})},r.makeJQueryPlugin(),r}));
18;
19/**
20 * This work is licensed under the W3C Software and Document License
21 * (http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document).
22 */
23
24 (function() {
25    // Return early if we're not running inside of the browser.
26    if (typeof window === 'undefined') {
27      return;
28    }
29  
30    // Convenience function for converting NodeLists.
31    /** @type {typeof Array.prototype.slice} */
32    const slice = Array.prototype.slice;
33  
34    /**
35     * IE has a non-standard name for "matches".
36     * @type {typeof Element.prototype.matches}
37     */
38    const matches =
39        Element.prototype.matches || Element.prototype.msMatchesSelector;
40  
41    /** @type {string} */
42    const _focusableElementsString = ['a[href]',
43                                      'area[href]',
44                                      'input:not([disabled])',
45                                      'select:not([disabled])',
46                                      'textarea:not([disabled])',
47                                      'button:not([disabled])',
48                                      'details',
49                                      'summary',
50                                      'iframe',
51                                      'object',
52                                      'embed',
53                                      '[contenteditable]'].join(',');
54  
55    /**
56     * `InertRoot` manages a single inert subtree, i.e. a DOM subtree whose root element has an `inert`
57     * attribute.
58     *
59     * Its main functions are:
60     *
61     * - to create and maintain a set of managed `InertNode`s, including when mutations occur in the
62     *   subtree. The `makeSubtreeUnfocusable()` method handles collecting `InertNode`s via registering
63     *   each focusable node in the subtree with the singleton `InertManager` which manages all known
64     *   focusable nodes within inert subtrees. `InertManager` ensures that a single `InertNode`
65     *   instance exists for each focusable node which has at least one inert root as an ancestor.
66     *
67     * - to notify all managed `InertNode`s when this subtree stops being inert (i.e. when the `inert`
68     *   attribute is removed from the root node). This is handled in the destructor, which calls the
69     *   `deregister` method on `InertManager` for each managed inert node.
70     */
71    class InertRoot {
72      /**
73       * @param {!Element} rootElement The Element at the root of the inert subtree.
74       * @param {!InertManager} inertManager The global singleton InertManager object.
75       */
76      constructor(rootElement, inertManager) {
77        /** @type {!InertManager} */
78        this._inertManager = inertManager;
79  
80        /** @type {!Element} */
81        this._rootElement = rootElement;
82  
83        /**
84         * @type {!Set<!InertNode>}
85         * All managed focusable nodes in this InertRoot's subtree.
86         */
87        this._managedNodes = new Set();
88  
89        // Make the subtree hidden from assistive technology
90        if (this._rootElement.hasAttribute('aria-hidden')) {
91          /** @type {?string} */
92          this._savedAriaHidden = this._rootElement.getAttribute('aria-hidden');
93        } else {
94          this._savedAriaHidden = null;
95        }
96        this._rootElement.setAttribute('aria-hidden', 'true');
97  
98        // Make all focusable elements in the subtree unfocusable and add them to _managedNodes
99        this._makeSubtreeUnfocusable(this._rootElement);
100  
101        // Watch for:
102        // - any additions in the subtree: make them unfocusable too
103        // - any removals from the subtree: remove them from this inert root's managed nodes
104        // - attribute changes: if `tabindex` is added, or removed from an intrinsically focusable
105        //   element, make that node a managed node.
106        this._observer = new MutationObserver(this._onMutation.bind(this));
107        this._observer.observe(this._rootElement, {attributes: true, childList: true, subtree: true});
108      }
109  
110      /**
111       * Call this whenever this object is about to become obsolete.  This unwinds all of the state
112       * stored in this object and updates the state of all of the managed nodes.
113       */
114      destructor() {
115        this._observer.disconnect();
116  
117        if (this._rootElement) {
118          if (this._savedAriaHidden !== null) {
119            this._rootElement.setAttribute('aria-hidden', this._savedAriaHidden);
120          } else {
121            this._rootElement.removeAttribute('aria-hidden');
122          }
123        }
124  
125        this._managedNodes.forEach(function(inertNode) {
126          this._unmanageNode(inertNode.node);
127        }, this);
128  
129        // Note we cast the nulls to the ANY type here because:
130        // 1) We want the class properties to be declared as non-null, or else we
131        //    need even more casts throughout this code. All bets are off if an
132        //    instance has been destroyed and a method is called.
133        // 2) We don't want to cast "this", because we want type-aware optimizations
134        //    to know which properties we're setting.
135        this._observer = /** @type {?} */ (null);
136        this._rootElement = /** @type {?} */ (null);
137        this._managedNodes = /** @type {?} */ (null);
138        this._inertManager = /** @type {?} */ (null);
139      }
140  
141      /**
142       * @return {!Set<!InertNode>} A copy of this InertRoot's managed nodes set.
143       */
144      get managedNodes() {
145        return new Set(this._managedNodes);
146      }
147  
148      /** @return {boolean} */
149      get hasSavedAriaHidden() {
150        return this._savedAriaHidden !== null;
151      }
152  
153      /** @param {?string} ariaHidden */
154      set savedAriaHidden(ariaHidden) {
155        this._savedAriaHidden = ariaHidden;
156      }
157  
158      /** @return {?string} */
159      get savedAriaHidden() {
160        return this._savedAriaHidden;
161      }
162  
163      /**
164       * @param {!Node} startNode
165       */
166      _makeSubtreeUnfocusable(startNode) {
167        composedTreeWalk(startNode, (node) => this._visitNode(node));
168  
169        let activeElement = document.activeElement;
170  
171        if (!document.body.contains(startNode)) {
172          // startNode may be in shadow DOM, so find its nearest shadowRoot to get the activeElement.
173          let node = startNode;
174          /** @type {!ShadowRoot|undefined} */
175          let root = undefined;
176          while (node) {
177            if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
178              root = /** @type {!ShadowRoot} */ (node);
179              break;
180            }
181            node = node.parentNode;
182          }
183          if (root) {
184            activeElement = root.activeElement;
185          }
186        }
187        if (startNode.contains(activeElement)) {
188          activeElement.blur();
189          // In IE11, if an element is already focused, and then set to tabindex=-1
190          // calling blur() will not actually move the focus.
191          // To work around this we call focus() on the body instead.
192          if (activeElement === document.activeElement) {
193            document.body.focus();
194          }
195        }
196      }
197  
198      /**
199       * @param {!Node} node
200       */
201      _visitNode(node) {
202        if (node.nodeType !== Node.ELEMENT_NODE) {
203          return;
204        }
205        const element = /** @type {!Element} */ (node);
206  
207        // If a descendant inert root becomes un-inert, its descendants will still be inert because of
208        // this inert root, so all of its managed nodes need to be adopted by this InertRoot.
209        if (element !== this._rootElement && element.hasAttribute('inert')) {
210          this._adoptInertRoot(element);
211        }
212  
213        if (matches.call(element, _focusableElementsString) || element.hasAttribute('tabindex')) {
214          this._manageNode(element);
215        }
216      }
217  
218      /**
219       * Register the given node with this InertRoot and with InertManager.
220       * @param {!Node} node
221       */
222      _manageNode(node) {
223        const inertNode = this._inertManager.register(node, this);
224        this._managedNodes.add(inertNode);
225      }
226  
227      /**
228       * Unregister the given node with this InertRoot and with InertManager.
229       * @param {!Node} node
230       */
231      _unmanageNode(node) {
232        const inertNode = this._inertManager.deregister(node, this);
233        if (inertNode) {
234          this._managedNodes.delete(inertNode);
235        }
236      }
237  
238      /**
239       * Unregister the entire subtree starting at `startNode`.
240       * @param {!Node} startNode
241       */
242      _unmanageSubtree(startNode) {
243        composedTreeWalk(startNode, (node) => this._unmanageNode(node));
244      }
245  
246      /**
247       * If a descendant node is found with an `inert` attribute, adopt its managed nodes.
248       * @param {!Element} node
249       */
250      _adoptInertRoot(node) {
251        let inertSubroot = this._inertManager.getInertRoot(node);
252  
253        // During initialisation this inert root may not have been registered yet,
254        // so register it now if need be.
255        if (!inertSubroot) {
256          this._inertManager.setInert(node, true);
257          inertSubroot = this._inertManager.getInertRoot(node);
258        }
259  
260        inertSubroot.managedNodes.forEach(function(savedInertNode) {
261          this._manageNode(savedInertNode.node);
262        }, this);
263      }
264  
265      /**
266       * Callback used when mutation observer detects subtree additions, removals, or attribute changes.
267       * @param {!Array<!MutationRecord>} records
268       * @param {!MutationObserver} self
269       */
270      _onMutation(records, self) {
271        records.forEach(function(record) {
vendor: 2,097 bytes, lines 272-315
272          const target = /** @type {!Element} */ (record.target);
273          if (record.type === 'childList') {
274            // Manage added nodes
275            slice.call(record.addedNodes).forEach(function(node) {
276              this._makeSubtreeUnfocusable(node);
277            }, this);
278  
279            // Un-manage removed nodes
280            slice.call(record.removedNodes).forEach(function(node) {
281              this._unmanageSubtree(node);
282            }, this);
283          } else if (record.type === 'attributes') {
284            if (record.attributeName === 'tabindex') {
285              // Re-initialise inert node if tabindex changes
286              this._manageNode(target);
287            } else if (target !== this._rootElement &&
288                      record.attributeName === 'inert' &&
289                      target.hasAttribute('inert')) {
290              // If a new inert root is added, adopt its managed nodes and make sure it knows about the
291              // already managed nodes from this inert subroot.
292              this._adoptInertRoot(target);
293              const inertSubroot = this._inertManager.getInertRoot(target);
294              this._managedNodes.forEach(function(managedNode) {
295                if (target.contains(managedNode.node)) {
296                  inertSubroot._manageNode(managedNode.node);
297                }
298              });
299            }
300          }
301        }, this);
302      }
303    }
304  
305    /**
306     * `InertNode` initialises and manages a single inert node.
307     * A node is inert if it is a descendant of one or more inert root elements.
308     *
309     * On construction, `InertNode` saves the existing `tabindex` value for the node, if any, and
310     * either removes the `tabindex` attribute or sets it to `-1`, depending on whether the element
311     * is intrinsically focusable or not.
312     *
313     * `InertNode` maintains a set of `InertRoot`s which are descendants of this `InertNode`. When an
314     * `InertRoot` is destroyed, and calls `InertManager.deregister()`, the `InertManager` notifies the
315     * `InertNode` via `removeInertRoot()`, which in turn destroys the `InertN
315ode` if no `InertRoot`s
316     * remain in the set. On destruction, `InertNode` reinstates the stored `tabindex` if one exists,
317     * or removes the `tabindex` attribute if the element is intrinsically focusable.
318     */
319    class InertNode {
320      /**
321       * @param {!Node} node A focusable element to be made inert.
322       * @param {!InertRoot} inertRoot The inert root element associated with this inert node.
323       */
324      constructor(node, inertRoot) {
325        /** @type {!Node} */
326        this._node = node;
327  
328        /** @type {boolean} */
329        this._overrodeFocusMethod = false;
330  
331        /**
332         * @type {!Set<!InertRoot>} The set of descendant inert roots.
333         *    If and only if this set becomes empty, this node is no longer inert.
334         */
335        this._inertRoots = new Set([inertRoot]);
336  
337        /** @type {?number} */
338        this._savedTabIndex = null;
339  
340        /** @type {boolean} */
341        this._destroyed = false;
342  
343        // Save any prior tabindex info and make this node untabbable
344        this.ensureUntabbable();
345      }
346  
347      /**
348       * Call this whenever this object is about to become obsolete.
349       * This makes the managed node focusable again and deletes all of the previously stored state.
350       */
351      destructor() {
352        this._throwIfDestroyed();
353  
354        if (this._node && this._node.nodeType === Node.ELEMENT_NODE) {
355          const element = /** @type {!Element} */ (this._node);
356          if (this._savedTabIndex !== null) {
357            element.setAttribute('tabindex', this._savedTabIndex);
358          } else {
359            element.removeAttribute('tabindex');
360          }
361  
362          // Use `delete` to restore native focus method.
363          if (this._overrodeFocusMethod) {
364            delete element.focus;
365          }
366        }
367  
368        // See note in InertRoot.destructor for why we cast these nulls to ANY.
369        this._node = /** @type {?} */ (null);
370        this._inertRoots = /** @type {?} */ (null);
371        this._destroyed = true;
372      }
373  
374      /**
375       * @type {boolean} Whether this object is obsolete because the managed node is no longer inert.
376       * If the object has been destroyed, any attempt to access it will cause an exception.
377       */
378      get destroyed() {
379        return /** @type {!InertNode} */ (this)._destroyed;
380      }
381  
382      /**
383       * Throw if user tries to access destroyed InertNode.
384       */
385      _throwIfDestroyed() {
386        if (this.destroyed) {
387          throw new Error('Trying to access destroyed InertNode');
388        }
389      }
390  
391      /** @return {boolean} */
392      get hasSavedTabIndex() {
393        return this._savedTabIndex !== null;
394      }
395  
396      /** @return {!Node} */
397      get node() {
398        this._throwIfDestroyed();
399        return this._node;
400      }
401  
402      /** @param {?number} tabIndex */
403      set savedTabIndex(tabIndex) {
404        this._throwIfDestroyed();
405        this._savedTabIndex = tabIndex;
406      }
407  
408      /** @return {?number} */
409      get savedTabIndex() {
410        this._throwIfDestroyed();
411        return this._savedTabIndex;
412      }
413  
414      /** Save the existing tabindex value and make the node untabbable and unfocusable */
415      ensureUntabbable() {
416        if (this.node.nodeType !== Node.ELEMENT_NODE) {
417          return;
418        }
419        const element = /** @type {!Element} */ (this.node);
420        if (matches.call(element, _focusableElementsString)) {
421          if (/** @type {!HTMLElement} */ (element).tabIndex === -1 &&
422              this.hasSavedTabIndex) {
423            return;
424          }
425  
426          if (element.hasAttribute('tabindex')) {
427            this._savedTabIndex = /** @type {!HTMLElement} */ (element).tabIndex;
428          }
429          element.setAttribute('tabindex', '-1');
430          if (element.nodeType === Node.ELEMENT_NODE) {
431            element.focus = function() {};
432            this._overrodeFocusMethod = true;
433          }
434        } else if (element.hasAttribute('tabindex')) {
435          this._savedTabIndex = /** @type {!HTMLElement} */ (element).tabIndex;
436          element.removeAttribute('tabindex');
437        }
438      }
439  
440      /**
441       * Add another inert root to this inert node's set of managing inert roots.
442       * @param {!InertRoot} inertRoot
443       */
444      addInertRoot(inertRoot) {
445        this._throwIfDestroyed();
446        this._inertRoots.add(inertRoot);
447      }
448  
449      /**
450       * Remove the given inert root from this inert node's set of managing inert roots.
451       * If the set of managing inert roots becomes empty, this node is no longer inert,
452       * so the object should be destroyed.
453       * @param {!InertRoot} inertRoot
454       */
455      removeInertRoot(inertRoot) {
456        this._throwIfDestroyed();
457        this._inertRoots.delete(inertRoot);
458        if (this._inertRoots.size === 0) {
459          this.destructor();
460        }
461      }
462    }
463  
464    /**
465     * InertManager is a per-document singleton object which manages all inert roots and nodes.
466     *
467     * When an element becomes an inert root by having an `inert` attribute set and/or its `inert`
468     * property set to `true`, the `setInert` method creates an `InertRoot` object for the element.
469     * The `InertRoot` in turn registers itself as managing all of the element's focusable descendant
470     * nodes via the `register()` method. The `InertManager` ensures that a single `InertNode` instance
471     * is created for each such node, via the `_managedNodes` map.
472     */
473    class InertManager {
474      /**
475       * @param {!Document} document
476       */
477      constructor(document) {
478        if (!document) {
479          throw new Error('Missing required argument; InertManager needs to wrap a document.');
480        }
481  
482        /** @type {!Document} */
483        this._document = document;
484  
485        /**
486         * All managed nodes known to this InertManager. In a map to allow looking up by Node.
487         * @type {!Map<!Node, !InertNode>}
488         */
489        this._managedNodes = new Map();
490  
491        /**
492         * All inert roots known to this InertManager. In a map to allow looking up by Node.
493         * @type {!Map<!Node, !InertRoot>}
494         */
495        this._inertRoots = new Map();
496  
497        /**
498         * Observer for mutations on `document.body`.
499         * @type {!MutationObserver}
500         */
501        this._observer = new MutationObserver(this._watchForInert.bind(this));
502  
503        // Add inert style.
504        addInertStyle(document.head || document.body || document.documentElement);
505  
506        // Wait for document to be loaded.
507        if (document.readyState === 'loading') {
508          document.addEventListener('DOMContentLoaded', this._onDocumentLoaded.bind(this));
509        } else {
510          this._onDocumentLoaded();
511        }
512      }
513  
514      /**
515       * Set whether the given element should be an inert root or not.
516       * @param {!Element} root
517       * @param {boolean} inert
518       */
519      setInert(root, inert) {
520        if (inert) {
521          if (this._inertRoots.has(root)) { // element is already inert
522            return;
523          }
524  
525          const inertRoot = new InertRoot(root, this);
526          root.setAttribute('inert', '');
527          this._inertRoots.set(root, inertRoot);
528          // If not contained in the document, it must be in a shadowRoot.
529          // Ensure inert styles are added there.
530          if (!this._document.body.contains(root)) {
531            let parent = root.parentNode;
532            while (parent) {
533              if (parent.nodeType === 11) {
534                addInertStyle(parent);
535              }
536              parent = parent.parentNode;
537            }
538          }
539        } else {
540          if (!this._inertRoots.has(root)) { // element is already non-inert
541            return;
542          }
543  
544          const inertRoot = this._inertRoots.get(root);
545          inertRoot.destructor();
546          this._inertRoots.delete(root);
547          root.removeAttribute('inert');
548        }
549      }
550  
551      /**
552       * Get the InertRoot object corresponding to the given inert root element, if any.
553       * @param {!Node} element
554       * @return {!InertRoot|undefined}
555       */
556      getInertRoot(element) {
557        return this._inertRoots.get(element);
558      }
559  
560      /**
561       * Register the given InertRoot as managing the given node.
562       * In the case where the node has a previously existing inert root, this inert root will
563       * be added to its set of inert roots.
564       * @param {!Node} node
565       * @param {!InertRoot} inertRoot
566       * @return {!InertNode} inertNode
567       */
568      register(node, inertRoot) {
569        let inertNode = this._managedNodes.get(node);
570        if (inertNode !== undefined) { // node was already in an inert subtree
571          inertNode.addInertRoot(inertRoot);
572        } else {
573          inertNode = new InertNode(node, inertRoot);
574        }
575  
576        this._managedNodes.set(node, inertNode);
577  
578        return inertNode;
579      }
580  
581      /**
582       * De-register the given InertRoot as managing the given inert node.
583       * Removes the inert root from the InertNode's set of managing inert roots, and remove the inert
584       * node from the InertManager's set of managed nodes if it is destroyed.
585       * If the node is not currently managed, this is essentially a no-op.
586       * @param {!Node} node
587       * @param {!InertRoot} inertRoot
588       * @return {?InertNode} The potentially destroyed InertNode associated with this node, if any.
589       */
590      deregister(node, inertRoot) {
591        const inertNode = this._managedNodes.get(node);
592        if (!inertNode) {
593          return null;
594        }
595  
596        inertNode.removeInertRoot(inertRoot);
597        if (inertNode.destroyed) {
598          this._managedNodes.delete(node);
599        }
600  
601        return inertNode;
602      }
603  
604      /**
605       * Callback used when document has finished loading.
606       */
607      _onDocumentLoaded() {
608        // Find all inert roots in document and make them actually inert.
609        const inertElements = slice.call(this._document.querySelectorAll('[inert]'));
610        inertElements.forEach(function(inertElement) {
611          this.setInert(inertElement, true);
612        }, this);
613  
614        // Comment this out to use programmatic API only.
615        this._observer.observe(this._document.body || this._document.documentElement, {attributes: true, subtree: true, childList: true});
616      }
617  
618      /**
619       * Callback used when mutation observer detects attribute changes.
620       * @param {!Array<!MutationRecord>} records
621       * @param {!MutationObserver} self
622       */
623      _watchForInert(records, self) {
624        const _this = this;
625        records.forEach(function(record) {
626          switch (record.type) {
627          case 'childList':
628            slice.call(record.addedNodes).forEach(function(node) {
629              if (node.nodeType !== Node.ELEMENT_NODE) {
630                return;
631              }
632              const inertElements = slice.call(node.querySelectorAll('[inert]'));
633              if (matches.call(node, '[inert]')) {
634                inertElements.unshift(node);
635              }
636              inertElements.forEach(function(inertElement) {
637                this.setInert(inertElement, true);
638              }, _this);
639            }, _this);
640            break;
641          case 'attributes':
642            if (record.attributeName !== 'inert') {
643              return;
644            }
645            const target = /** @type {!Element} */ (record.target);
646            const inert = target.hasAttribute('inert');
647            _this.setInert(target, inert);
648            break;
649          }
650        }, this);
651      }
652    }
653  
654    /**
655     * Recursively walk the composed tree from |node|.
656     * @param {!Node} node
657     * @param {(function (!Element))=} callback Callback to be called for each element traversed,
658     *     before descending into child nodes.
659     * @param {?ShadowRoot=} shadowRootAncestor The nearest ShadowRoot ancestor, if any.
660     */
661    function composedTreeWalk(node, callback, shadowRootAncestor) {
662      if (node.nodeType == Node.ELEMENT_NODE) {
663        const element = /** @type {!Element} */ (node);
664        if (callback) {
665          callback(element);
666        }
667  
668        // Descend into node:
669        // If it has a ShadowRoot, ignore all child elements - these will be picked
670        // up by the <content> or <shadow> elements. Descend straight into the
671        // ShadowRoot.
672        const shadowRoot = /** @type {
672!HTMLElement} */ (element).shadowRoot;
673        if (shadowRoot) {
674          composedTreeWalk(shadowRoot, callback, shadowRoot);
675          return;
676        }
677  
678        // If it is a <content> element, descend into distributed elements - these
679        // are elements from outside the shadow root which are rendered inside the
680        // shadow DOM.
681        if (element.localName == 'content') {
682          const content = /** @type {!HTMLContentElement} */ (element);
683          // Verifies if ShadowDom v0 is supported.
684          const distributedNodes = content.getDistributedNodes ?
685            content.getDistributedNodes() : [];
686          for (let i = 0; i < distributedNodes.length; i++) {
687            composedTreeWalk(distributedNodes[i], callback, shadowRootAncestor);
688          }
689          return;
690        }
691  
692        // If it is a <slot> element, descend into assigned nodes - these
693        // are elements from outside the shadow root which are rendered inside the
694        // shadow DOM.
695        if (element.localName == 'slot') {
696          const slot = /** @type {!HTMLSlotElement} */ (element);
697          // Verify if ShadowDom v1 is supported.
698          const distributedNodes = slot.assignedNodes ?
699            slot.assignedNodes({flatten: true}) : [];
700          for (let i = 0; i < distributedNodes.length; i++) {
701            composedTreeWalk(distributedNodes[i], callback, shadowRootAncestor);
702          }
703          return;
704        }
705      }
706  
707      // If it is neither the parent of a ShadowRoot, a <content> element, a <slot>
708      // element, nor a <shadow> element recurse normally.
709      let child = node.firstChild;
710      while (child != null) {
711        composedTreeWalk(child, callback, shadowRootAncestor);
712        child = child.nextSibling;
713      }
714    }
715  
716    /**
717     * Adds a style element to the node containing the inert specific styles
718     * @param {!Node} node
719     */
720    function addInertStyle(node) {
721      if (node.querySelector('style#inert-style, link#inert-style')) {
722        return;
723      }
724      const style = document.createElement('style');
725      style.setAttribute('id', 'inert-style');
726      style.textContent = '\n'+
727                          '[inert] {\n' +
728                          '  pointer-events: none;\n' +
729                          '  cursor: default;\n' +
730                          '}\n' +
731                          '\n' +
732                          '[inert], [inert] * {\n' +
733                          '  -webkit-user-select: none;\n' +
734                          '  -moz-user-select: none;\n' +
735                          '  -ms-user-select: none;\n' +
736                          '  user-select: none;\n' +
737                          '}\n';
738      node.appendChild(style);
739    }
740  
741    if (!Element.prototype.hasOwnProperty('inert')) {
742      /** @type {!InertManager} */
743      const inertManager = new InertManager(document);
744      
745      Object.defineProperty(Element.prototype, 'inert', {
746        enumerable: true,
747        /** @this {!Element} */
748        get: function() {
749          return this.hasAttribute('inert');
750        },
751        /** @this {!Element} */
752        set: function(inert) {
753          inertManager.setInert(this, inert);
754        },
755      });
756    }
757  })();;
758jQuery(document).ready(oxygen_init_offcanvas);
759function oxygen_init_offcanvas($) {
760    
761    let touchEvent = 'click';
762    let previousFocus = false;
763
764    'use strict';
765
766    $('.oxy-off-canvas .offcanvas-inner').each(function() {
767
768        var offCanvas = $(this),
769            triggerSelector = offCanvas.data('trigger-selector'),
770            offCanvasOutside = offCanvas.data('click-outside'),
771            offCanvasEsc = offCanvas.data('esc'),
772            offCanvasStart = offCanvas.data('start'),
773            offCanvasBackdrop = offCanvas.data('backdrop'),
774            offCanvasFocusSelector = offCanvas.data('focus-selector'),
775            backdrop = offCanvas.prev('.oxy-offcanvas_backdrop'),
776            menuHashLink = offCanvas.find('a[href*=\\#]').not(".menu-item-has-children > a"),
777            reset = offCanvas.data('reset'),
778            mediaPlayer = offCanvas.find('.oxy-pro-media-player vime-player'),
779            otherOffcanvas = offCanvas.data('second-offcanvas'),
780            maybeHashClose = offCanvas.data('hashclose'),
781            offcanvasPush = offCanvas.data('content-push'),
782            offcanvasPushContent = offCanvas.data('content-selector'),
783            offcanvasPushDuration = offCanvas.data('content-duration'),
784            offcanvasID = offCanvas.parent('.oxy-off-canvas').attr('ID'),
785            burgerSync = offCanvas.data('burger-sync'),
786            maybeOverflow = offCanvas.data('overflow');
787
788            
789        if (false !== offCanvas.data('stagger-menu')) {
790            offCanvas.find('.oxy-slide-menu_list > .menu-item').addClass('aos-animate');
791            offCanvas.find('.oxy-slide-menu_list > .menu-item').attr( { "data-aos": offCanvas.data('stagger-menu') } );
792        }
793
794        if (! $(this).hasClass('oxy-off-canvas-toggled') ) {
795            $(this).find(".aos-animate:not(.oxy-off-canvas-toggled .aos-animate)").addClass("aos-animate-disabled").removeClass("aos-animate");
796        }
797
798        ariaExpandToggle('false');
799
800        if ( true === offCanvas.data('auto-aria') ) {
801
802            $(triggerSelector).each(function(i,trigger) {
803
804                if ( $(trigger).hasClass('oxy-burger-trigger') && $(trigger).children('.hamburger').length ) {
805                    $(trigger).children('.hamburger').attr('aria-controls', offCanvas.attr('id'));
806                } else {
807                    $(trigger).attr('aria-controls', offCanvas.attr('id'));
808                }
809            });
810        }
811
812        if ( true === offCanvas.data('focus-trap') ) {
813
814            const keyboardfocusableElements = offCanvas.find(
815                'a[href], button, input, textarea, select, details, [tabindex]'
816              );
817
818              if (keyboardfocusableElements.length) {
819                 
820                keyboardfocusableElements[keyboardfocusableElements.length - 1].addEventListener('keydown', (e) => {
821
822                    if (!e.shiftKey && e.key === 'Tab') {
823                        e.preventDefault()
824                        keyboardfocusableElements[0].focus()
825                    }
826
827                })
828
829                keyboardfocusableElements[0].addEventListener('keydown', (e) => {
830
831                    if (e.shiftKey && e.key === 'Tab') {
832                        e.preventDefault()
833                        keyboardfocusableElements[keyboardfocusableElements.length - 1].focus()
834                    }
835
836                })
837
838              }
839        }
840        
841        function doOffCanvas(triggerSelector) { 
842            
843            if ($(triggerSelector).hasClass('oxy-close-modal')) {
844                oxyCloseModal();
845            } 
846            
847            if (!offCanvas.parent().hasClass('oxy-off-canvas-toggled')) {
848                openOffCanvas();
849            } else {
850                closeOffCanvas();
851            }
852        }
853        
854        if ( $(triggerSelector).hasClass('oxy-burger-trigger') && $(triggerSelector).children('.hamburger').length ) {
855            
856            let triggerSelectorTouch = $( triggerSelector ).children('.hamburger').data('touch');
857            let touchEvent = 'ontouchstart' in window ? triggerSelectorTouch : 'click'; 
858            
859            $(triggerSelector).on(touchEvent, function(e) {
860                e.stopPropagation();
861                e.preventDefault();
862                
863                if (true === burgerSync) {
864                    $(triggerSelector).not('#' + $(this).attr('ID')).children('.hamburger').toggleClass('is-active');
865                }   
866
867                if ( !e.target.closest('.oxy-off-canvas') ) {
868                    previousFocus = e.target.closest(triggerSelector);
869                }
870
871                doOffCanvas(triggerSelector);
872                
873            });
874        } else {
875            
876            let triggerSelectorTouch = touchEvent;
877            $(triggerSelector).on(triggerSelectorTouch, function(e) {
878                e.stopPropagation();
879                e.preventDefault();
880                doOffCanvas(triggerSelector);
881            });
882        }
883
884
885        // Backdrop Clicked
886        offCanvas.siblings('.oxy-offcanvas_backdrop').on(touchEvent, function(e) {
887            e.stopPropagation();
888            if (offCanvasOutside === true) {
889                closeBurger();
890                closeLottie();
891                closeOffCanvas();
892            }
893
894        });
895
896        // Pressing ESC from inside the offcanvas will close it
897        offCanvas.keyup(function(e) {
898            if (offCanvasEsc === true) {
899                if (e.keyCode === 27) {
900                    closeBurger();
901                    closeLottie();
902                    closeOffCanvas();
903                }
904            }
905        });
906        
907        if (maybeHashClose === true) {
908
909            $(document).on("click", '#' + offcanvasID + ' a[href*=\\#]', function (e) {
910                
911                e.stopPropagation();
912                
913                if ( ( !$(this).not(".menu-item-has-children > a") ) || $(this).is('[href="#"]' ) ) {
914                    return;
915                }
916
917                if ( $(this).is(".oxy-table-of-contents_list-item > a") ) {
918                    return;
919                }
920
921                if ( $(this).is(".mm-btn") || $(this).is(".mm-navbar__title") ) {
922                    return;
923                }
924
925                
926                
927                if (this.pathname === window.location.pathname) {
928                    closeBurger();
929                    closeLottie();
930                    closeOffCanvas();
931                }
932            });
933            
934        }   
935        
936        if (offcanvasPush) {
937            $(offcanvasPushContent).attr('data-offcanvas-push', '#' + offcanvasID);
938            $(offcanvasPushContent).css({
939                                        "--offcanvas-push" : offcanvasPush + "px",
940                                        "--offcanvas-push-duration" : offcanvasPushDuration + 's',
941                                    });
942            
943        }
944
945        function ariaExpandToggle($state) {
946            if ( true === offCanvas.data('auto-aria') ) {
947                $(triggerSelector).each(function(i,trigger) {
948                    if ( $(trigger).hasClass('oxy-burger-trigger') && $(trigger).children('.hamburger').length ) {
949                        $(trigger).children('.hamburger').attr('aria-expanded', $state);
950                    } else {
951                        $(trigger).attr('aria-expanded', $state);
952                        $(trigger).attr('role','button');
953                    }
954                });
955            }
956        }
957
958        function inertToggle($state) {
959            if ( false !== offCanvas.data('inert') ) {
960                if ('true' === $state) {
961                    offCanvas.attr('inert','');
962                } else {
963                    offCanvas.removeAttr('inert');
964                }
965            }
966        }
967
968        function openOffCanvas() {
969            offCanvas.parent().addClass('oxy-off-canvas-toggled');
970            $(offcanvasPushContent).addClass('oxy-off-canvas-toggled');
971            $('body,html').addClass('off-canvas-toggled');
972            $('body,html').addClass('toggled' + offcanvasID);
973
974            if (true === offCanvasStart) {
975                doClose();
976            } else {
977                doOpen()
978            }
979            
980        }
981
982        function closeOffCanvas() {
983            $('body,html').removeClass('off-canvas-toggled');
984            $('body,html').removeClass('toggled' + offcanvasID);
985            offCanvas.parent().removeClass('oxy-off-canvas-toggled');
986            $(offcanvasPushContent).removeClass('oxy-off-canvas-toggled');
987
988            if (true === offCanvasStart) {
989                doOpen()
990            } else {
991                doClose();
992            }
993            
994        }
995
996        function doOpen() {
997                offCanvas.find(".aos-animate-disabled").removeClass("aos-animate-disabled").addClass("aos-animate");
998                offCanvas.parent('.oxy-off-canvas').trigger('extras_offcanvas:open');
999                
1000                inertToggle('false')
1001                setTimeout(function() {
1002                    offCanvas.attr('aria-hidden','false');
1003                }, 0);
1004                
1005                ariaExpandToggle('true');
1006
1007                
1008                
1009                if (offCanvasFocusSelector) {
1010                    setTimeout(function() {
1011                        offCanvas.parent().find(offCanvasFocusSelector).eq(0).focus();
1012                    }, 0);
1013                }
1014        }
1015
1016        function doClose() {
1017                inertToggle('true');
1018                offCanvas.attr('aria-hidden','true');
1019               
1020                setTimeout(function(){
1021                    offCanvas.find(".aos-animate").removeClass("aos-animate").addClass("aos-animate-disabled");
1022                }, reset); // wait before removing the animate class 
1023                
1024                $(offCanvas).parent('.oxy-off-canvas').trigger('extras_offcanvas:close');
1025                if (otherOffcanvas) {
1026                    $(otherOffcanvas).children('.offcanvas-inner').attr('aria-hidden','true');
1027                    $(otherOffcanvas).children('.offcanvas-inner').removeAttr('inert');
1028                    $(otherOffcanvas).removeClass('oxy-off-canvas-toggled');
1029                }
1030
1031                ariaExpandToggle('false');
1032                
1033                mediaPlayer.each(function() {
1034                    $(this)[0].pause(); // turn off any pro media players
1035                });
1036
1037                setTimeout(function() {
1038
1039                    if (!!previousFocus) {
1040
1041                        if ( $(previousFocus).find('.hamburger') ) {
1042                            $(previousFocus).find('.hamburger').focus();
1043                        } else {
1044                            $(previousFocus).focus();
1045                        }
1046                    }
1047                    
1048                }, 0);
1049        }
1050        
1051        function closeBurger() {
1052            
1053            if ( ( $(triggerSelector).children('.hamburger').length > 0) && ($(this).children('.hamburger').data('animation') !== 'disable')) {
1054                $(triggerSelector).children('.hamburger').removeClass('is-active');
1055            }
1056        }
1057
1058        function closeLottie() {
1059            
1060            if ( ( $(triggerSelector).children('lottie-player').length > 0) ) {
1061                $(triggerSelector).children('lottie-player').trigger('click');
1062            }
1063        }
1064
1065        /* For programmatically opening */
1066        function extrasOpenOffcanvas($extras_offcanvas) {
1067            
1068            var thisOffcanvas = $($extras_offcanvas);
1069            var thisoffcanvasPushContent = thisOffcanvas.children('.offcanvas-inner').data('content-selector');
1070            var thisoffCanvasFocusSelector = thisOffcanvas.children('.offcanvas-inner').data('focus-selector');
1071
1072            thisOffcanvas.addClass('oxy-off-canvas-toggled');
1073            $(offcanvasPushContent).addClass('oxy-off-canvas-toggled');
1074            offCanvas.attr('aria-hidden','false');
1075            $('body,html').addClass('off-canvas-toggled');
1076            thisOffcanvas.find(".aos-animate-disabled").removeClass("aos-animate-disabled").addClass("aos-animate");
1077            thisOffcanvas.trigger('extras_offcanvas:open');
1078            
1079            if (thisoffCanvasFocusSelector) {
1080                thisOffcanvas.find(thisoffCanvasFocusSelector).eq(0).focus();
1081            }
1082            
1083        }
1084
1085        if (true !== offCanvasStart) {
1086            offCanvas.attr('aria-hidden','true');
1087            inertToggle('true');
1088        } else {
1089            offCanvas.attr('aria-hidden','false');
1090        }
1091
1092        // Expose function
1093        window.extrasOpenOffcanvas = extrasOpenOffcanvas;
1094    
1095            var stagger = offCanvas.data('stagger');
1096                
1097            // Make sure AOS animations are reset for elements inside after everything has loaded
1098            setTimeout(function(){
1099                if (! offCanvas.hasClass('oxy-off-canvas-toggled') ) {
1100                    offCanvas.find(".aos-animate:not(.oxy-off-canvas-toggled .aos-animate)").addClass("aos-animate-disabled").removeClass("aos-animate");
1101                }
1102            }, 40); // wait
1103            
1104            if (stagger != null) {
1105            
1106                var delay = offCanvas.data('first-delay');
1107                offCanvas.find('[data-aos]').not('.not-staggered').each(function() {
1108                    delay = delay + stagger;
1109    
1110                    $(this).attr('data-aos-delay', delay);
1111                });
1112    
1113            }
1114
1115    });
1116}
1117
1118;
1119window.WP_Grid_Builder && WP_Grid_Builder.on( 'init', onInit );
1120
1121function onInit( wpgb ) {
1122    wpgb.facets && wpgb.facets.on( 'appended', onAppended );
1123}
1124
1125function onAppended( content ) {
1126    
1127    /* Lightbox */
1128    if (typeof doExtrasLightbox == 'function' && jQuery(content).has('.oxy-lightbox')) {
1129    	doExtrasLightbox(jQuery(content));
1130    }
1131  
1132    /* Read More / Less */
1133    if (typeof doExtrasReadmore == 'function' && jQuery(content).has('.oxy-read-more-less')) {
1134    	doExtrasReadmore(jQuery(content));
1135    }
1136	
1137	 /* Tabs */
1138    if (typeof doExtrasTabs == 'function' && jQuery(content).has('.oxy-dynamic-tabs')) {
1139    	doExtrasTabs(jQuery(content));
1140    }
1141	
1142	/* Accordion */
1143    if (typeof doExtrasAccordion == 'function' && jQuery(content).has('.oxy-pro-accordion')) {
1144    	doExtrasAccordion(jQuery(content));
1145    }
1146	
1147	/* Carousel */
1148    if (typeof doExtrasCarousel == 'function' && jQuery(content).has('.oxy-carousel-builder')) {
1149    	    doExtrasCarousel(jQuery(content));
1150    }
1151
1152    /* Popover */
1153    if (typeof doExtrasPopover == 'function' && jQuery(content).has('.oxy-popover')) {
1154        doExtrasPopover(jQuery(content));
1155    }
1156
1157    /* copy to clipboard */
1158    if (typeof doCopyToClipboard == 'function' && jQuery(content).has('.oxy-copy-to-clipboard')) {
1159        doCopyToClipboard(jQuery(content));
1160    }
1161
1162    /* social share */
1163    if (typeof doExtrasSocialShare == 'function' && jQuery(content).has('.oxy-share-button')) {
1164        doExtrasSocialShare(jQuery(content));
1165    }
1166    
1167
1168    content.forEach((container) => {
1169
1170        /* print */
1171        if (typeof doExtrasSocialSharePrint == 'function' && jQuery(content).has('.oxy-share-button.print')) {
1172            doExtrasSocialSharePrint(container);
1173        }
1174
1175    })
1176
1177    
1178
1179    
1180
1181} ;

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.