/** * This JS file was auto-generated via Terser. * * Contributors should avoid editing this file, but instead edit the associated * non minified file file. For more information, check out our engineering docs * on how we handle JS minification in our engineering docs. * * @see: https://evnt.is/dev-docs-minification */ tribe.events=tribe.events||{},tribe.events.views=tribe.events.views||{},tribe.events.views.manager={},function($,_,obj){"use strict";var $window=$(window);obj.nonces=null,obj.selectors={container:'[data-js="tribe-events-view"]',form:'[data-js="tribe-events-view-form"]',link:'[data-js="tribe-events-view-link"]',dataScript:'[data-js="tribe-events-view-data"]',loader:".tribe-events-view-loader",loaderText:".tribe-events-view-loader__text",hiddenElement:".tribe-common-a11y-hidden",nonceScript:'[data-js="tribe-events-view-nonce-data"]'},obj.lastLocation={origin:"",pathname:""},obj.doingPopstate=!1,obj.currentAjaxRequest=null,obj.$lastContainer=$(),obj.$containers=$(),obj.cleanup=function(container){var $container=$(container),$form=$container.find(obj.selectors.form),$data=$container.find(obj.selectors.dataScript),data={};$data.length&&(data=JSON.parse($data.text().trim())),$container.trigger("beforeCleanup.tribeEvents",[$container,data]),$container.find(obj.selectors.link).off("click.tribeEvents",obj.onLinkClick),$form.length&&$form.off("submit.tribeEvents",obj.onSubmit),$container.trigger("afterCleanup.tribeEvents",[$container,data])},obj.setup=function(index,container){var $nonces=$($.find(obj.selectors.nonceScript)),$container=$(container),$form=$container.find(obj.selectors.form),$data=$container.find(obj.selectors.dataScript),data={};$nonces.length&&(obj.nonces=JSON.parse($($nonces[0]).text().trim()),$nonces.remove()),$data.length&&(data=JSON.parse($data.text().trim())),$container.trigger("beforeSetup.tribeEvents",[index,$container,data]),$container.find(obj.selectors.link).on("click.tribeEvents",obj.onLinkClick),$form.length&&$form.on("submit.tribeEvents",obj.onSubmit),$container.trigger("afterSetup.tribeEvents",[index,$container,data])},obj.getContainer=function(element){var $element=$(element);return $element.is(obj.selectors.container)?$element:$element.parents(obj.selectors.container).eq(0)},obj.getContainerData=function($container){var $data=$container.find(obj.selectors.dataScript);if($data.length)return JSON.parse($data.text().trim())},obj.shouldManageUrl=function($container){var shouldManageUrl=$container.data("view-manage-url");return shouldManageUrl=void 0===shouldManageUrl||/^(true|1|on|yes)$/.test(String(shouldManageUrl))},obj.updateUrl=function($container){if(!obj.doingPopstate&&obj.shouldManageUrl($container)){var $data=$container.find(obj.selectors.dataScript);if($data.length){var data=JSON.parse($data.text().trim());_.isObject(data)&&(_.isUndefined(data.url)||_.isUndefined(data.title)||(document.title=data.title,window.history.pushState(null,data.title,data.url),obj.lastLocation.pathname=document.location.pathname,obj.lastLocation.origin=document.location.origin))}}},obj.onLinkClick=function(event){var $container=obj.getContainer(this);$container.trigger("beforeOnLinkClick.tribeEvents",event),event.preventDefault();var containerData=obj.getContainerData($container),url=$(this).attr("href"),prevUrl=containerData.prev_url,shouldManageUrl=obj.shouldManageUrl($container),shortcodeId=$container.data("view-shortcode"),data={prev_url:encodeURI(decodeURI(prevUrl)),url:encodeURI(decodeURI(url)),should_manage_url:shouldManageUrl};return shortcodeId&&(data.shortcode=shortcodeId),obj.request(data,$container),$container.trigger("afterOnLinkClick.tribeEvents",event),!1},obj.onSubmit=function(event){var $container=obj.getContainer(this);$container.trigger("beforeOnSubmit.tribeEvents",event),event.preventDefault();var $form=$(this),data={view_data:Qs.parse($form.serialize())["tribe-events-views"]};return obj.request(data,$container),$container.trigger("afterOnSubmit.tribeEvents",event),!1},obj.onPopState=function(event){var target=event.originalEvent.target,url=target.location.href,$container=obj.getLastContainer();if(obj.lastLocation.origin===target.location.origin&&obj.lastLocation.pathname===target.location.pathname)return!1;if(obj.lastLocation.pathname=document.location.pathname,obj.lastLocation.origin=document.location.origin,!$container)return!1;obj.currentAjaxRequest&&obj.currentAjaxRequest.abort(),obj.doingPopstate=!0,$container.trigger("beforePopState.tribeEvents",event);var data={url:url};return obj.request(data,$container),!1},obj.setupRequestData=function(data,$container){var shouldManageUrl=obj.shouldManageUrl($container),containerData=obj.getContainerData($container);data.url||(data.url=containerData.url),data.prev_url||(data.prev_url=containerData.prev_url),data.should_manage_url=shouldManageUrl,obj.nonces&&(data=$.extend(data,obj.nonces));var requestData=$container.data("tribeRequestData");return $.isPlainObject(requestData)?$.extend(requestData,data):data},obj.request=function(data,$container){$container.trigger("beforeRequest.tribeEvents",[data,$container]);var settings=obj.getAjaxSettings($container);settings.data=obj.setupRequestData(data,$container),obj.currentAjaxRequest=$.ajax(settings),$container.trigger("afterRequest.tribeEvents",[data,$container])},obj.getAjaxSettings=function($container){return{url:$container.data("view-rest-url"),method:$container.data("view-rest-method")||"POST",async:!0,beforeSend:obj.ajaxBeforeSend,complete:obj.ajaxComplete,success:obj.ajaxSuccess,error:obj.ajaxError,context:$container}},obj.ajaxBeforeSend=function(jqXHR,settings){var $loader=this.find(obj.selectors.loader);if(this.trigger("beforeAjaxBeforeSend.tribeEvents",[jqXHR,settings]),$loader.length){$loader.removeClass(obj.selectors.hiddenElement.className());var $loaderText=$loader.find(obj.selectors.loaderText);$loaderText.text($loaderText.text())}this.attr("aria-busy","true"),this.trigger("afterAjaxBeforeSend.tribeEvents",[jqXHR,settings])},obj.ajaxComplete=function(jqXHR,textStatus){var $loader=this.find(obj.selectors.loader);this.trigger("beforeAjaxComplete.tribeEvents",[jqXHR,textStatus]),$loader.length&&$loader.addClass(obj.selectors.hiddenElement.className()),this.trigger("afterAjaxComplete.tribeEvents",[jqXHR,textStatus]),obj.doingPopstate&&(obj.doingPopstate=!1),obj.currentAjaxRequest=null},obj.ajaxSuccess=function(data,textStatus,jqXHR){var $container=this;$container.trigger("beforeAjaxSuccess.tribeEvents",[data,textStatus,jqXHR]);var $html=$(data),$nonces=$html.find(obj.selectors.nonceScript);$html=$html.not(obj.selectors.nonceScript),$nonces.length&&(obj.nonces=JSON.parse($($nonces[0]).text().trim())),obj.cleanup($container),document.dispatchEvent(new CustomEvent("containerReplaceBefore.tribeEvents",{detail:$container})),$container.replaceWith($html),$container=$html,obj.setup(0,$container),document.dispatchEvent(new CustomEvent("containerReplaceAfter.tribeEvents",{detail:$container})),obj.selectContainers(),obj.updateUrl($container),$container.trigger("afterAjaxSuccess.tribeEvents",[data,textStatus,jqXHR]),obj.shouldManageUrl($container)&&(obj.$lastContainer=$container)},obj.ajaxError=function(jqXHR,settings){this.trigger("beforeAjaxError.tribeEvents",[jqXHR,settings]),this.trigger("afterAjaxError.tribeEvents",[jqXHR,settings])},obj.selectContainers=function(){return obj.$containers=$(obj.selectors.container),obj.$containers},obj.getLastContainer=function(){return obj.$lastContainer.length||(obj.$lastContainer=obj.$containers.filter('[data-view-manage-url="1"]').eq(0)),obj.$lastContainer},obj.ready=function(){obj.selectContainers().each(obj.setup),obj.lastLocation={origin:document.location.origin,pathname:document.location.pathname}},$(obj.ready),$window.on("popstate",obj.onPopState)}(jQuery,window.underscore||window._,tribe.events.views.manager);; /** * This JS file was auto-generated via Terser. * * Contributors should avoid editing this file, but instead edit the associated * non minified file file. For more information, check out our engineering docs * on how we handle JS minification in our engineering docs. * * @see: https://evnt.is/dev-docs-minification */ tribe.events=tribe.events||{},tribe.events.views=tribe.events.views||{},tribe.events.views.breakpoints={},function($,obj){"use strict";var $document=$(document);obj.selectors={container:'[data-js="tribe-events-view"]',dataScript:'[data-js="tribe-events-view-data"]',breakpointClassPrefix:"tribe-common--breakpoint-"},obj.breakpoints={},obj.setContainerClasses=function($container,data){Object.keys(data.breakpoints).forEach((function(breakpoint){var className=obj.selectors.breakpointClassPrefix+breakpoint;obj.breakpoints[breakpoint]=data.breakpoints[breakpoint],$container.outerWidth() 1 ) { keypress.push( keydowns[ e.key ][1] ); } keypresses.push( keypress ); } } delete keydowns[ e.key ]; lastKeyup = keyupTime; }, supportsPassive ? { passive: true } : false ); form.addEventListener( "focusin", function ( e ) { lastKeydown = null; lastKeyup = null; keydowns = {}; }, supportsPassive ? { passive: true } : false ); form.addEventListener( "focusout", function ( e ) { lastKeydown = null; lastKeyup = null; keydowns = {}; }, supportsPassive ? { passive: true } : false ); } document.addEventListener( 'mousedown', function ( e ) { lastMousedown = ( new Date() ).getTime(); }, supportsPassive ? { passive: true } : false ); document.addEventListener( 'mouseup', function ( e ) { if ( ! lastMousedown ) { // If the mousedown happened before this script was loaded, but the mouseup happened after... return; } var now = ( new Date() ).getTime(); var mouseclick = []; mouseclick.push( now - lastMousedown ); if ( lastMouseup ) { mouseclick.push( lastMousedown - lastMouseup ); } mouseclicks.push( mouseclick ); lastMouseup = now; // If the mouse has been clicked, don't record this time as an interval between keypresses. lastKeydown = null; lastKeyup = null; keydowns = {}; }, supportsPassive ? { passive: true } : false ); document.addEventListener( 'mousemove', function ( e ) { if ( mousemoveTimer ) { clearTimeout( mousemoveTimer ); mousemoveTimer = null; } else { mousemoveStart = ( new Date() ).getTime(); lastMousemoveX = e.offsetX; lastMousemoveY = e.offsetY; } mousemoveTimer = setTimeout( function ( theEvent, originalMousemoveStart ) { var now = ( new Date() ).getTime() - 500; // To account for the timer delay. var mousemove = []; mousemove.push( now - originalMousemoveStart ); mousemove.push( Math.round( Math.sqrt( Math.pow( theEvent.offsetX - lastMousemoveX, 2 ) + Math.pow( theEvent.offsetY - lastMousemoveY, 2 ) ) ) ); if ( mousemove[1] > 0 ) { // If there was no measurable distance, then it wasn't really a move. mousemoves.push( mousemove ); } mousemoveStart = null; mousemoveTimer = null; }, 500, e, mousemoveStart ); }, supportsPassive ? { passive: true } : false ); document.addEventListener( 'touchmove', function ( e ) { if ( touchmoveCountTimer ) { clearTimeout( touchmoveCountTimer ); } touchmoveCountTimer = setTimeout( function () { touchmoveCount++; }, 500 ); }, supportsPassive ? { passive: true } : false ); document.addEventListener( 'touchstart', function ( e ) { lastTouchStart = ( new Date() ).getTime(); }, supportsPassive ? { passive: true } : false ); document.addEventListener( 'touchend', function ( e ) { if ( ! lastTouchStart ) { // If the touchstart happened before this script was loaded, but the touchend happened after... return; } var now = ( new Date() ).getTime(); var touchEvent = []; touchEvent.push( now - lastTouchStart ); if ( lastTouchEnd ) { touchEvent.push( lastTouchStart - lastTouchEnd ); } touchEvents.push( touchEvent ); lastTouchEnd = now; // Don't record this time as an interval between keypresses. lastKeydown = null; lastKeyup = null; keydowns = {}; }, supportsPassive ? { passive: true } : false ); document.addEventListener( 'scroll', function ( e ) { if ( scrollCountTimer ) { clearTimeout( scrollCountTimer ); } scrollCountTimer = setTimeout( function () { scrollCount++; }, 500 ); }, supportsPassive ? { passive: true } : false ); } /** * For the timestamp data that is collected, don't send more than `limit` data points in the request. * Choose a random slice and send those. */ function prepare_timestamp_array_for_request( a, limit ) { if ( ! limit ) { limit = 100; } var rv = ''; if ( a.length > 0 ) { var random_starting_point = Math.max( 0, Math.floor( Math.random() * a.length - limit ) ); for ( var i = 0; i < limit && i < a.length; i++ ) { rv += a[ random_starting_point + i ][0]; if ( a[ random_starting_point + i ].length >= 2 ) { rv += "," + a[ random_starting_point + i ][1]; } rv += ";"; } } return rv; } if ( document.readyState !== 'loading' ) { init(); } else { document.addEventListener( 'DOMContentLoaded', init ); } })();;