1(function($){ 2 window.df_at_sticky = []; 3 $('.difl_advancedtab').each(function(index, ele){ 4 var _this = $(this); 5 var container = _this.find('.df_at_container'); 6 var nav_container = _this.find('.df_at_nav_container'); 7 var navs = _this.find('.df_at_nav'); 8 var settings = _this.find('.df_at_container').data().settings; 9 var sticky_selector = '.' + settings.module_class + ' .df_at_nav_wrap'; 10 var sticky_container = '.' + settings.module_class + ' .df_at_container'; 11 var Sticky = null; 12 var space = df_tab_distance(settings); 13 14 if (settings.use_sticky_nav === 'on') { 15 Sticky = new hcSticky(sticky_selector, { 16 stickTo: sticky_container, 17 top: space.desktop, 18 responsive: { 19 980: { 20 top: space.tablet, 21 disable: settings.turn_off_sticky === 'tablet_phone' ? true : false 22 }, 23 767: { 24 top: space.phone, 25 disable: settings.turn_off_sticky === 'phone' || settings.turn_off_sticky === 'tablet_phone' ? true : false 26 } 27 } 28 }); 29 Sticky.refresh(); 30 window.df_at_sticky.push(Sticky); 31 } 32 const hash = window.location.hash; 33 if(hash && hash.substring(1).includes("difl_advancedtab") && _this.find(`.df_at_nav[data-hash='${hash.substring(1)}']`).length > 0){ 34 const hash_data = hash.substring(1); 35 _this.find(`.df_at_nav[data-hash='${hash_data}']`).addClass('df_at_nav_active'); 36 _this.find(`.difl_advancedtabitem.${hash_data}`).addClass('df_at_content_active'); 37 $('html, body').animate({ 38 scrollTop: $(ele).offset().top - 150 39 }, 2000); 40 }else if("" !== settings.default_active){ 41 _this.find(`.df_at_nav.${settings.default_active}`).addClass('df_at_nav_active'); 42 _this.find(`.difl_advancedtabitem.${settings.default_active}`).addClass('df_at_content_active'); 43 } else{ 44 _this.find('.df_at_nav:first-child').addClass('df_at_nav_active'); 45 _this.find('.difl_advancedtabitem:first-child').addClass('df_at_content_active'); 46 } 47 48 navs.on(settings.tab_event_type, function(e){ 49 var active_class = e.currentTarget.classList[0]; 50 51 navs.removeClass('df_at_nav_active'); 52 $(this).addClass('df_at_nav_active'); 53 54 if(settings.use_sticky_nav === 'on') { 55 df_at_nav_sticky_scroll(container, space); 56 } 57 if(settings.use_sticky_nav !== 'on' && settings.use_scroll_to_content === 'on') { 58 df_scroll_to_content(_this.find('.df_at_all_tabs_wrap')); 59 } 60 61 df_tab_anime( 62 _this, 63 `.${settings.module_class} .df_at_all_tabs`, 64 settings.tab_animation, 65 parseInt(settings.animation_duration), 66 active_class 67 ); 68 69 // Check if timeline is available 70 const selectActiveTab = _this.find('.difl_advancedtabitem.' + active_class); 71 const availableTimeline = selectActiveTab.find(".difl_timeline"); 72 73 if (availableTimeline.length > 0) { 74 setTimeout(function() { 75 initializeTimeline(availableTimeline); 76 }, 300); 77 } 78 79 }); 80 81 }); 82 83 onElementHeightChange(document.body, function(){ 84 if(window.df_at_sticky.length > 0) { 85 for (var i = 0; i < window.df_at_sticky.length; i++) { 86 window.df_at_sticky[i].refresh() 87 } 88 } 89 }); 90 91 function onElementHeightChange(elm, callback){ 92 var lastHeight = elm.clientHeight, newHeight; 93 (function run(){ 94 newHeight = elm.clientHeight; 95 if( lastHeight !== newHeight ) 96 callback(); 97 lastHeight = newHeight; 98 99 if( elm.onElementHeightChangeTimer ) 100 clearTimeout(elm.onElementHeightChangeTimer); 101 102 elm.onElementHeightChangeTimer = setTimeout(run, 200); 103 })(); 104 } 105 106 function df_tab_distance(settings){ 107 var extra_space = settings.extra_space === true ? 32 : 0; 108 var space = parseInt(settings.sticky_distance) + extra_space; 109 var space_tablet = settings.sticky_distance_tablet !== '' ? 110 parseInt(settings.sticky_distance_tablet) + extra_space : space; 111 var space_phone = settings.sticky_distance_phone !== '' ? 112 parseInt(settings.sticky_distance_phone) + extra_space : space_tablet; 113 114 return { 115 'desktop' : space, 116 'tablet' : space_tablet, 117 'phone' : space_phone 118 }; 119 } 120 121 function df_at_nav_sticky_scroll(selector, space) { 122 var position_top = selector.offset().top; 123 124 if($(window).width() > 980) { 125 position_top = position_top - space.desktop; 126 } 127 if($(window).width() < 981 && $(window).width() > 767) { 128 position_top = position_top - space.tablet; 129 } 130 if($(window).width() < 768) { 131 position_top = position_top - space.phone; 132 } 133 134 $([document.documentElement, document.body]).animate({ 135 scrollTop: position_top 136 }, 700); 137 138 } 139 function df_scroll_to_content(selector) { 140 var position_top = selector.offset().top; 141 if($(window).width() < 981) { 142 $([document.documentElement, document.body]).animate({ 143 scrollTop: position_top 144 }, 500); 145 } 146 } 147 148 var animations = { 149 slide_left : { 150 opacity: ['1', '0'], 151 translateX: ['0', '-100px'] 152 }, 153 slide_right : { 154 opacity: ['1', '0'], 155 translateX: ['0', '100px'] 156 }, 157 slide_up : { 158 opacity: ['1', '0'], 159 translateY: ['0', '-100px'] 160 }, 161 slide_down : { 162 opacity: ['1', '0'], 163 translateY: ['0', '100px'] 164 }, 165 fade_in : { 166 opacity: ['1', '0'], 167 }, 168 zoom_left : { 169 opacity: ['1', '0'], 170 scale: ['1', '.5'], 171 transformOrigin: ['0% 50%', '0% 50%'], 172 // duration: 200 173 }, 174 zoom_center : { 175 opacity: ['1', '0'], 176 scale: ['1', '.5'], 177 transformOrigin: ['50% 50%', '50% 50%'], 178 // duration: 200 179 }, 180 zoom_right : { 181 opacity: ['1', '0'], 182 scale: ['1', '.5'], 183 transformOrigin: ['100% 50%', '100% 50%'], 184 // duration: 200 185 } 186 } 187 188 function df_tab_anime(_this, selector, config = 'slide_left', duration, active_class) { 189 var object = { 190 targets: selector, 191 direction: 'alternate', 192 easing: 'linear', 193 duration: duration, 194 endDelay: 1, 195 update: function(anim) { 196 if(anim.progress === 100) { 197 _this.find('.difl_advancedtabitem') 198 .removeClass('df_at_content_active'); 199 _this.find('.df_at_all_tabs .' + active_class) 200 .addClass('df_at_content_active'); 201 } 202 // Fire custom event for cpt filter if cpt filter uses as lib item as content 203 if ( window?.df_cpt_filter ) { 204 const evnt = new Event('resize') 205 window.dispatchEvent(evnt) 206 } 207 } 208 }; 209 var anime_config = Object.assign(object, animations[config]); 210 211 if( window.anime ) { 212 window.anime(anime_config); 213 } 214 } 215 216})(jQuery)
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.