1let Body = { 2 resizeTimer: null, 3 4 init: function() { 5 const self = this; 6 7 self.initResizeBehaviour(); 8 self.initPressKeyBehaviour(); 9 self.initClickBehaviour(); 10 }, 11 initResizeBehaviour: function() { 12 const self = this; 13 14 $(window).on('resize', function(event){ 15 let isResizingLookAheadAndShelfPanes = $(event.target).hasClass('ui-resizable'); 16 17 // update vis after resizing is done 18 if (!isResizingLookAheadAndShelfPanes) { 19 DimensionMeasurePane.adjustHeight(); 20 clearTimeout(self.resizeTimer); 21 self.resizeTimer = setTimeout(onResizeWindow, 300); 22 } 23 }); 24 25 function onResizeWindow() { 26 let isShowingViz = !Shelves.areEmpty(); 27 28 if (isShowingViz) { 29 VisualizationPane.showLoader(); 30 VisualizationPane.allowUpdating(); 31 VegaliteGenerator.generateSpecification(); // may block vis update 32 VisualizationPane.tryUpdating(); 33 } 34 } 35 }, 36 initPressKeyBehaviour: function() { 37 const self = this; 38 39 $("body").keydown(function(event) { 40 let pressedEnter = (event.keyCode === 13); 41 let pressedUp = (event.keyCode === 38); 42 let pressedDown = (event.keyCode === 40); 43 44 let isPreviewingRecommendation = PreviewMode.isOn; 45 let isVariableSettingMenuOpened = $("#variable-setting-menu").css("display") == "block"; 46 let isLookAheadSelectMetricMenuOpened = $("#look-ahead-select-metric-menu").css("display") == "block"; 47 48 if (pressedEnter) { 49 if (!isVariableSettingMenuOpened && !isLookAheadSelectMetricMenuOpened && isPreviewingRecommendation) 50 PreviewMode.confirm(); 51 if (isLookAheadSelectMetricMenuOpened && isPreviewingRecommendation) 52 PreviewMode.end(); 53 if (isVariableSettingMenuOpened) 54 $("#variable-setting-menu .footer .confirm.button").click(); 55 if (isLookAheadSelectMetricMenuOpened) 56 $("#look-ahead-select-metric-menu .footer .confirm.button").click(); 57 } 58 59 if (pressedUp) { 60 if (isVariableSettingMenuOpened) 61 $('#variable-setting-menu').css('display', 'none'); 62 if (isLookAheadSelectMetricMenuOpened) 63 $('#look-ahead-select-metric-menu').css('display', 'none'); 64 65 LookAheadPane.selectPrevious(); 66 event.preventDefault(); 67 } 68 69 if (pressedDown) { 70 if (isVariableSettingMenuOpened) 71 $('#variable-setting-menu').css('display', 'none'); 72 if (isLookAheadSelectMetricMenuOpened) 73 $('#look-ahead-select-metric-menu').css('display', 'none'); 74 75 LookAheadPane.selectNext(); 76 event.preventDefault(); 77 } 78 }); 79 }, 80 initClickBehaviour: function() { 81 const self = this; 82 83 $('body').on('click', function(event) { 84 for (let currentEventID in ClickEventListener.clickEvents) { 85 let currentTargetSelectors = ClickEventListener.clickEvents[currentEventID].targetSelectorArray; 86 let currentNotApplicableElSelectors = ClickEventListener.clickEvents[currentEventID].notApplicableElSelectorArray; 87 let isClickedElOneOfTargets = clickedElInSelectorArray(event.target, currentTargetSelectors); 88 let isClickedElOneOfNotApplicableEl = clickedElInSelectorArray(event.target, currentNotApplicableElSelectors); 89 90 if (!isClickedElOneOfNotApplicableEl && isClickedElOneOfTargets) 91 ClickEventListener.clickEvents[currentEventID].onClick(event); 92 if (!isClickedElOneOfNotApplicableEl && !isClickedElOneOfTargets) 93 ClickEventListener.clickEvents[currentEventID].onNotClick(event); 94 } 95 }); 96 97 function clickedElInSelectorArray(clickedEl, selectorArray) { 98 for (let i = 0; i < selectorArray.length; i++) { 99 let currentSelector = selectorArray[i]; 100 let isClickedElInSelectorArray = $(clickedEl).closest(currentSelector).length > 0; 101 102 if (isClickedElInSelectorArray) 103 return true; 104 } 105 106 return false; 107 } 108 } 109}
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.