1// add booking integrations in the selected elements 2function micore_load_integration_content() { 3 // loyalty login 4 if (!jQuery('#micore_temporal_loyalty_content').length) return; 5 6 // insert into 7 jQuery(jQuery('.micore-into-loyalty-target').text()).each(function () { 8 jQuery(this).append(jQuery('#micore_temporal_loyalty_content>div + div').clone()); 9 }); 10 11 // insert before 12 jQuery(jQuery('.micore-before-loyalty-target').text()).each(function () { 13 jQuery(this).before(jQuery('#micore_temporal_loyalty_content>div + div').clone()); 14 }); 15 16 // insert after 17 jQuery(jQuery('.micore-after-loyalty-target').text()).each(function () { 18 jQuery(this).after(jQuery('#micore_temporal_loyalty_content>div + div').clone()); 19 }); 20 21 jQuery('#micore_temporal_loyalty_content').remove(); 22} 23 24// overwrite old booking urls 25function micore_overwrite_core_urls() { 26 const $overwriteBookingDiv = jQuery('#micore_overwrite_booking_url'); 27 if (!$overwriteBookingDiv.length) return; 28 29 const forwarderUrl = $overwriteBookingDiv.data('url'); 30 const targets = ($overwriteBookingDiv.data('target') || '').split(',').map(t => t.trim()).filter(Boolean); 31 const cssInitialSelectors = ['#', '.']; 32 33 targets.forEach(target => { 34 const firstChar = target[0]; 35 36 if (cssInitialSelectors.includes(firstChar) && jQuery(target).length) { 37 jQuery(target).attr('mirai-forwarder-url', forwarderUrl).off('click').on('click', function (e) { 38 e.preventDefault(); 39 window.location.href = jQuery(this).attr('mirai-forwarder-url'); 40 }); 41 } else { 42 const $linkMatch = jQuery(`[href*="${target}"]`); 43 if ($linkMatch.length) { 44 $linkMatch.off().attr('href', forwarderUrl); 45 } 46 } 47 }); 48 49 $overwriteBookingDiv.remove(); 50} 51 52// update finder integrations language 53function micore_update_language_parameters() { 54 const forwarderBaseUrl = 'reservation.mirai.com/XMAS/'; 55 const $targets = jQuery( 56 `[href*="${forwarderBaseUrl}"]:not([href*="&lang="]), [mirai-forwarder-url*="${forwarderBaseUrl}"]:not([mirai-forwarder-url*="&lang="])` 57 ); 58 59 if (!$targets.length) return; 60 61 // get current lang 62 const currentLang = (jQuery('html').attr('lang') || 'en').trim().substring(0, 2); 63 64 // for every target - url or element 65 $targets.each(function () { 66 const $target = jQuery(this); 67 const attributeType = $target.attr('href') !== undefined ? 'href' : 'mirai-forwarder-url'; 68 const originalUrl = $target.attr(attributeType); 69 70 if (originalUrl && originalUrl.includes('#url=true')) { 71 const updatedUrl = originalUrl.replace('#url=true', `&lang=${currentLang}#url=true`); 72 $target.attr(attributeType, updatedUrl); 73 } 74 }); 75} 76 77// overwrite core options 78function micore_get_custom_core_options() { 79 const coreParams = {}; 80 81 // overwrite chan selector value 82 if (jQuery('#micore_chain_selector_value').length) { 83 coreParams.chainSelectorValue = parseInt(jQuery('#micore_chain_selector_value').data('value')); 84 } 85 86 // overwrite hsri 87 if (jQuery('#micore_hsri').length) { 88 coreParams.hsri = jQuery('#micore_hsri').data('value'); 89 } 90 91 // overwrite promocode 92 if (jQuery('#micore_promocode').length) { 93 coreParams.promocode = jQuery('#micore_promocode').data('value'); 94 } 95 96 return coreParams; 97} 98 99// set offset action for fixed finder 100function micore_fixed_finder_offset() { 101 // get fixed finder 102 const $fixedFinder = jQuery('#micore_fixed_finder[data-offset]'); 103 104 // check if data-offset exists in the dom 105 if (!$fixedFinder.length) return; 106 107 // get finder offset value 108 const offsetTarget = $fixedFinder.data('offset'); 109 110 // check if offset value is not a number 111 if (isNaN(parseInt(offsetTarget))) { 112 // check if offset value exist has element in the dom 113 if (jQuery(offsetTarget).length) { 114 // overwrite offset value with scroll y position + he
114ight of the target element 115 jQuery($fixedFinder).data('offset', jQuery(offsetTarget).offset().top + jQuery(offsetTarget).outerHeight()); 116 } 117 // if element not exist in the dom the offset value is overwrite to 10 118 else { 119 jQuery($fixedFinder).data('offset', 10); 120 } 121 } 122 123 // set function on scroll 124 jQuery(window).on('scroll', function () { 125 // compare window scroll y position with offset value to add or remove offset active class 126 $fixedFinder.toggleClass('micore-offset-active', window.scrollY > parseInt($fixedFinder.data('offset'))); 127 }); 128} 129 130// reload core components inside elementor pop ups 131function micore_load_core_components_in_elementor_popups() { 132 // check if there are a core component inside pop up 133 if (jQuery('body:not(.elementor-editor-active) [data-elementor-type="popup"] [data-mirai-component]').length && typeof Mirai === 'object') { 134 // remove html content of component and ready attribute 135 jQuery('[data-elementor-type="popup"] [data-mirai-component]').removeAttr('data-ready'); 136 jQuery('[data-elementor-type="popup"] [data-mirai-component] > [data-role]').remove(); 137 138 // reload core components 139 window.Mirai.core(); 140 141 // overwrite default core values 142 setTimeout(() => { 143 window.Mirai.Event.publish("setStore", micore_get_custom_core_options()); 144 }, 500); 145 } 146} 147 148micore_load_integration_content(); 149 150// ON LOAD CORE 151document.addEventListener('MIRAI:EVENT:core:events:ready', function () { 152 // ON LOAD FINDER 153 window.Mirai.Event.subscribe('finderLoaded', function ({ calendar, occupation, place, promocode } = {}) { 154 window.Mirai.Event.publish("setStore", micore_get_custom_core_options()); 155 }); 156}); 157 158jQuery(document).ready(function () { 159 micore_overwrite_core_urls(); 160 micore_update_language_parameters(); 161 micore_fixed_finder_offset(); 162}); 163 164jQuery(document).on('elementor/popup/show', function () { 165 micore_load_core_components_in_elementor_popups(); 166});
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.