1/** 2 * Makes sure we have all the required levels on the Tribe Object 3 * 4 * @since 4.9.7 5 * 6 * @type {PlainObject} 7 */ 8tribe.events = tribe.events || {}; 9tribe.events.views = tribe.events.views || {}; 10 11/** 12 * Configures Viewport Object in the Global Tribe variable 13 * 14 * @since 4.9.7 15 * 16 * @type {PlainObject} 17 */ 18tribe.events.views.viewport = {}; 19 20/** 21 * Initializes in a Strict env the code that manages the Event Views 22 * 23 * @since 4.9.7 24 * 25 * @param {PlainObject} $ jQuery 26 * @param {PlainObject} obj tribe.events.views.viewport 27 * 28 * @return {void} 29 */ 30( function( $, obj ) { 31 'use strict'; 32 var $window = $( window ); 33 var $document = $( document ); 34 35 /** 36 * Object of options 37 * 38 * @since 4.9.7 39 * 40 * @type {PlainObject} 41 */ 42 obj.options = { 43 MOBILE_BREAKPOINT: tribe.events.views.breakpoints.breakpoints.medium || 768, 44 }; 45 46 /** 47 * Set viewport state for container 48 * 49 * @since 4.9.7 50 * 51 * @param {jQuery} $container jQuery object of view container 52 * 53 * @return {void} 54 */ 55 obj.setViewport = function( $container ) { 56 var state = $container.data( 'tribeEventsState' ); 57 58 if ( ! state ) { 59 state = {}; 60 } 61 62 state.isMobile = $container.outerWidth() < obj.options.MOBILE_BREAKPOINT; 63 $container.data( 'tribeEventsState', state ); 64 }; 65 66 /** 67 * Handles window resize event 68 * 69 * @since 4.9.7 70 * 71 * @param {Event} event event object for 'resize' event 72 * 73 * @return {void} 74 */ 75 obj.handleResize = function( event ) { 76 var $container = event.data.container; 77 obj.setViewport( $container ); 78 $container.trigger( 'resize.tribeEvents' ); 79 }; 80 81 /** 82 * Unbind events for window resize 83 * 84 * @since 5.0.0 85 * 86 * @param {jQuery} $container jQuery object of view container 87 * 88 * @return {void} 89 */ 90 obj.unbindEvents = function( $container ) { // eslint-disable-line no-unused-vars 91 $window.off( 'resize', obj.handleResize ); 92 }; 93 94 /** 95 * Bind events for window resize 96 * 97 * @since 4.9.7 98 * 99 * @param {jQuery} $container jQuery object of view container 100 * 101 * @return {void} 102 */ 103 obj.bindEvents = function( $container ) { 104 $window.on( 'resize', { container: $container }, obj.handleResize ); 105 }; 106 107 /** 108 * Deinitialize viewport JS 109 * 110 * @since 5.0.0 111 * 112 * @param {Event} event event object for 'beforeAjaxSuccess.tribeEvents' event 113 * @param {jqXHR} jqXHR Request object 114 * @param {PlainObject} settings Settings that this request was made with 115 * 116 * @return {void} 117 */ 118 obj.deinit = function( event, jqXHR, settings ) { // eslint-disable-line no-unused-vars 119 var $container = event.data.container; 120 obj.unbindEvents( $container ); 121 $container.off( 'beforeAjaxSuccess.tribeEvents', obj.deinit ); 122 }; 123 124 /** 125 * Initialize viewport JS 126 * 127 * @since 4.9.7 128 * 129 * @param {Event} event event object for 'afterSetup.tribeEvents' event 130 * @param {integer} index jQuery.each index param from 'afterSetup.tribeEvents' event 131 * @param {jQuery} $container jQuery object of view container 132 * @param {object} data data object passed from 'afterSetup.tribeEvents' event 133 * 134 * @return {void} 135 */ 136 obj.init = function( event, index, $container, data ) { // eslint-disable-line no-unused-vars 137 obj.bindEvents( $container ); 138 obj.setViewport( $container ); 139 $container.on( 'beforeAjaxSuccess.tribeEvents', { container: $container }, obj.deinit ); 140 }; 141 142 /** 143 * Handles the initialization of viewport when Document is ready 144 * 145 * @since 4.9.7 146 * 147 * @return {void} 148 */ 149 obj.ready = function() { 150 $document.on( 151 'afterSetup.tribeEvents', 152 tribe.events.views.manager.selectors.container, 153 obj.init 154 ); 155 }; 156 157 // Configure on document ready 158 $( obj.ready ); 159} )( jQuery, tribe.events.views.viewport );
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.