1tribe.events=tribe.events||{},tribe.events.views=tribe.events.views||{},tribe.events.views.monthGrid={},function(e,t){"use strict";const n=e(document);t.selectors={grid:'[data-js="tribe-events-month-grid"]',row:'[data-js="tribe-events-month-grid-row"]',cell:'[data-js="tribe-events-month-grid-cell"]',focusable:"[tabindex]",focused:'[tabindex="0"]'},t.keyCode={END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40},t.isValidCell=function(e,t,n){return!isNaN(t)&&!isNaN(n)&&t>=0&&n>=0&&e&&e.length&&t<e.length&&n<e[t].length},t.getNextCell=function(e,n,s,o,i){const a=n+i,r=s+o;return t.isValidCell(e,a,r)?{row:a,col:r}:{row:n,col:s}},t.setFocusPointer=function(e,n,s){const o=e.data("tribeEventsState");return!!t.isValidCell(o.grid,n,s)&&(o.grid[o.currentRow][o.currentCol].attr("tabindex","-1"),o.grid[n][s].attr("tabindex","0"),o.currentRow=n,o.currentCol=s,e.data("tribeEventsState",o),!0)},t.focusCell=function(e,n,s){t.setFocusPointer(e,n,s)&&e.data("tribeEventsState").grid[n][s].focus()},t.handleKeydown=function(e){const a=e.data.grid,i=a.data("tribeEventsState"),r=e.which||e.keyCode;let n,s=i.currentRow,o=i.currentCol;switch(r){case t.keyCode.UP:n=t.getNextCell(i.grid,s,o,0,-1),s=n.row,o=n.col;break;case t.keyCode.DOWN:n=t.getNextCell(i.grid,s,o,0,1),s=n.row,o=n.col;break;case t.keyCode.LEFT:n=t.getNextCell(i.grid,s,o,-1,0),s=n.row,o=n.col;break;case t.keyCode.RIGHT:n=t.getNextCell(i.grid,s,o,1,0),s=n.row,o=n.col;break;case t.keyCode.HOME:e.ctrlKey&&(s=0),o=0;break;case t.keyCode.END:e.ctrlKey&&(s=i.grid.length-1),o=i.grid[i.currentRow].length-1;break;default:return}t.focusCell(a,s,o),e.preventDefault()},t.handleClick=function(n){const o=n.data.grid,s=o.data("tribeEventsState"),i=e(n.target).closest(t.selectors.focusable);for(let e=0;e<s.grid.length;e++)for(let n=0;n<s.grid[e].length;n++)if(s.grid[e][n].is(i))return void t.focusCell(o,e,n)},t.initState=function(e){e.data("tribeEventsState",{grid:[],currentRow:0,currentCol:0})},t.setupGrid=function(n){const s=n.data("tribeEventsState");n.find(t.selectors.row).each(function(n,o){const i=[];e(o).find(t.selectors.cell).each(function(n,o){const a=e(o);if(a.is(t.selectors.focusable))a.is(t.selectors.focused)&&(s.currentRow=s.grid.length,s.currentCol=i.length),i.push(a);else{const e=a.find(t.selectors.focusable);e.is(t.selectors.focusable)&&(a.is(t.selectors.focused)&&(s.currentRow=s.grid.length,s.currentCol=i.length),i.push(e))}}),i.length&&s.grid.push(i)}),n.data("tribeEventsState",s)},t.unbindEvents=function(e){e.off()},t.bindEvents=function(e){e.on("keydown",{grid:e},t.handleKeydown).on("click",{grid:e},t.handleClick)},t.deinit=function(e){const o=e.data.container,i=o.find(t.selectors.grid);t.unbindEvents(i),o.off("beforeAjaxSuccess.tribeEvents",t.deinit)},t.init=function(e,n,s){const i=s.find(t.selectors.grid);if(!i.length)return;t.initState(i),t.setupGrid(i);const a=i.data("tribeEventsState");t.setFocusPointer(i,a.currentRow,a.currentCol),t.bindEvents(i),s.on("beforeAjaxSuccess.tribeEvents",{container:s},t.deinit)},t.ready=function(){n.on("afterSetup.tribeEvents",tribe.events.views.manager.selectors.container,t.init)},e(t.ready)}(jQuery,tribe.events.views.monthGrid),window.tec=window.tec||{},window.tec.events=window.tec.events||{},window.tec.events.views=window.tec.events.views||{},window.tec.events.views.monthGrid={}
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.