1function dceGetElementSettings($element) { 2 var elementSettings = []; 3 var modelCID = $element.data('model-cid'); 4 if (elementorFrontend.isEditMode() && modelCID) { 5 var settings = elementorFrontend.config.elements.data[modelCID]; 6 var type = settings.attributes.widgetType || settings.attributes.elType; 7 var settingsKeys = elementorFrontend.config.elements.keys[ type ]; 8 if (!settingsKeys) { 9 settingsKeys = elementorFrontend.config.elements.keys[type] = []; 10 jQuery.each(settings.controls, function (name, control) { 11 if (control.frontend_available) { 12 settingsKeys.push(name); 13 } 14 }); 15 } 16 jQuery.each(settings.getActiveControls(), function (controlKey) { 17 if (-1 !== settingsKeys.indexOf(controlKey)) { 18 elementSettings[ controlKey ] = settings.attributes[ controlKey ]; 19 } 20 }); 21 } else { 22 elementSettings = $element.data('settings') || {}; 23 } 24 return elementSettings; 25} 26 27function dceObserveElement( $target, $function_callback ){ 28 if (elementorFrontend.isEditMode()) { 29 // Seleziona il nodo di cui monitare la mutazione 30 var elemToObserve = $target; 31 32 /* 33 // NOTA: le proprietà di observe 34 mutationObserver.observe(document.documentElement, { 35 attributes: true, 36 characterData: true, 37 childList: true, 38 subtree: true, 39 attributeOldValue: true, 40 characterDataOldValue: true 41 });*/ 42 43 // Opzioni per il monitoraggio (quali mutazioni monitorare) 44 var config = { 45 attributes: true, 46 childList: false, 47 characterData: true 48 }; 49 50 var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; 51 // Creazione di un'istanza di monitoraggio collegata alla funzione di callback 52 var observer = new MutationObserver( $function_callback ); 53 54 // Inizio del monitoraggio del nodo target riguardo le mutazioni configurate 55 observer.observe(elemToObserve, config); 56 57 // Successivamente si può interrompere il monitoraggio 58 } 59 60} 61 62window.dynamicooo = {}; 63 64dynamicooo.getActiveBreakpointsMinPointAndPostfix = () => { 65 let breakpoints = elementorFrontend.config.responsive.activeBreakpoints; 66 let ret = {}; 67 for (let key in breakpoints) { 68 ret[key] = { 69 // Elementor widescreen value is actually the min breakpoint: 70 min_point: elementorFrontend.breakpoints.getDeviceMinBreakpoint(key), 71 postfix: `_${key}`, 72 }; 73 } 74 ret.desktop = { 75 min_point: elementorFrontend.breakpoints.getDeviceMinBreakpoint('desktop'), 76 postfix: '', 77 } 78 return ret; 79} 80 81/** 82 * Create a Swiper settings breakpoints object . 83 * 84 * swiperSettings: An object with with Swiper settings keys as keys, and as values 85 * an object contains: 86 * - elementor_key: The Elementor Settings Key from where the value of the 87 * Swiper Key should be fetched. 88 * - default_value 89 * - filter: function that modifies the Elementor Setting value.> 90 * 91 * 92 * Returns the breakpoints object as defined by Swiper, value are 93 * automatically fetched from the Elementor settings. 94 */ 95dynamicooo.makeSwiperBreakpoints = (swiperSettings, elementorSettings, elementorSettingsPrefix) => { 96 elementorSettingsPrefix = elementorSettingsPrefix || ''; 97 swiperBreakpoints = {} 98 let elementorBreakpoints = dynamicooo.getActiveBreakpointsMinPointAndPostfix(); 99 for(let device in elementorBreakpoints) { 100 let min_point = elementorBreakpoints[device].min_point; 101 let postfix = elementorBreakpoints[device].postfix; 102 let breakpointSettings = {} 103 for(let swiperSettingsKey in swiperSettings) { 104 let elementorSettingsKey = elementorSettingsPrefix + swiperSettings[swiperSettingsKey].elementor_key; 105 let default_value = swiperSettings[swiperSettingsKey].default_value; 106 let postfixedKey = elementorSettingsKey + postfix; 107 let value 108 if (typeof elementorSettings[postfixedKey] !== "undefined") { 109 value = elementorSettings[postfixedKey]; 110 } else { 111 // fallback to desktop value: 112 value = elementorSettings[elementorSettingsKey] 113 } 114 if (typeof value !== "undefined") { 115 let filter = Number; 116 if ( typeof swiperSettings[swiperSettingsKey].filter === "function" ) { 117 filter = swiperSettings[swiperSettingsKey].filter; 118 } 119 value = filter(value); 120 } else { 121 value = default_value; 122 } 123 breakpointSettings[swiperSettingsKey] = value; 124 }
125 swiperBreakpoints[min_point] = breakpointSettings; 126 } 127 return swiperBreakpoints; 128}
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.