1"use strict" 2 3jQuery(function($){ 4 const initVisibility = ($e) => { 5 const e = $e[0]; 6 if (! $e.hasClass('dce-visibility-event') || $e.hasClass('dce-visibility-event-initialized')) { 7 return; 8 } 9 $e.addClass('dce-visibility-event-initialized'); 10 const settings = JSON.parse(e.dataset.settings); 11 const shouldHide = settings.dce_visibility_selected === 'hide'; 12 const triggerElement = settings.dce_visibility_click; 13 const triggerEvent = settings.dce_visibility_event; 14 const triggerAnimation = settings.dce_visibility_click_show; 15 const hideOther = settings.dce_visibility_click_other; 16 const showOnLoad = settings.dce_visibility_load === 'yes'; 17 const isToggle = settings.dce_visibility_click_toggle === 'yes'; 18 const showOnLoadDelay = settings.dce_visibility_load_delay; 19 const showOnLoadAnimation = settings.dce_visibility_load_show; 20 const $hideOther = $(hideOther).not($e); 21 const transitionDelay = 400; 22 const afterShow = () => { 23 elementorFrontend.elementsHandler.runReadyTrigger($e); 24 } 25 const toggle = () => { 26 if ($e.hasClass('dce-visibility-element-hidden')) { 27 $e.removeClass('dce-visibility-element-hidden'); 28 $e.hide(); 29 } 30 if (triggerAnimation === 'slide') { 31 $e.delay(transitionDelay).slideToggle(transitionDelay, afterShow); 32 } else if(triggerAnimation === 'fade') { 33 $e.delay(transitionDelay).fadeToggle(transitionDelay, afterShow); 34 } else { 35 $e.toggle(); 36 afterShow(); 37 } 38 } 39 const show = () => { 40 // .removeClass and .hide are needed because otherwise .show will 41 // always set display to block: 42 $e.removeClass('dce-visibility-element-hidden'); 43 $e.hide(); 44 if (triggerAnimation === 'slide') { 45 $e.delay(transitionDelay).slideDown(transitionDelay, afterShow); 46 } else if(triggerAnimation === 'fade') { 47 $e.delay(transitionDelay).fadeIn(transitionDelay, afterShow); 48 } else { 49 $e.show(); 50 afterShow(); 51 } 52 } 53 const hide = () => { 54 if (triggerAnimation === 'slide') { 55 $e.delay(transitionDelay).slideUp(transitionDelay); 56 } else if(triggerAnimation === 'fade') { 57 $e.delay(transitionDelay).fadeOut(transitionDelay); 58 } else { 59 $e.hide(); 60 } 61 } 62 const hideOtherElements = (callback) => { 63 if (triggerAnimation === 'slide') { 64 $hideOther.delay(transitionDelay).slideUp(transitionDelay, callback); 65 } else if(triggerAnimation === 'fade') { 66 $hideOther.delay(transitionDelay).fadeOut(transitionDelay, callback); 67 } else { 68 $hideOther.hide(); 69 callback(); 70 } 71 } 72 const triggerEventCallback = (event) => { 73 event.preventDefault(); 74 const triggerFun = isToggle ? toggle : (shouldHide? hide : show); 75 if (hideOther) { 76 hideOtherElements(triggerFun); 77 } else { 78 triggerFun(); 79 } 80 } 81 if (triggerElement) { 82 $(triggerElement).on(triggerEvent, triggerEventCallback); 83 } 84 if (showOnLoad) { 85 setTimeout(() => { 86 if (shouldHide) { 87 hide(); 88 return; 89 } 90 $e.removeClass('dce-visibility-element-hidden'); 91 $e.hide(); 92 if (showOnLoadAnimation === 'slide') { 93 $e.slideToggle(transitionDelay, afterShow); 94 } else if(showOnLoadAnimation === 'fade') { 95 $e.fadeToggle(transitionDelay, afterShow); 96 } else { 97 $e.toggle(); 98 afterShow(); 99 } 100 }, showOnLoadDelay ); 101 } 102 }; 103 $(window).on('elementor/frontend/init', () => { 104 elementorFrontend.hooks.addAction('frontend/element_ready/global', initVisibility); 105 }); 106});
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.