1function ueStackingCard(){ 2 3 var g_stackingCard, g_stackingCardItems; 4 var g_classConnected; 5 var g_isInEditor; 6 7 /* 8 * clone sections and append to their parent slides 9 */ 10 function findSections(g_stackingCardItem, sectionToClone){ 11 12 //clone section - use detach method on front to make elementor widgets work 13 var clonedSectionItem = sectionToClone.detach(); 14 15 //paste section 16 var saItemContentWrapper = g_stackingCardItem.find(".ue_content_wrapper.ue_section_id"); 17 18 saItemContentWrapper.html(clonedSectionItem); 19 20 //add connected class to stacking card child element 21 var g_stackingCardSection = g_stackingCardItem.children(); 22 23 g_stackingCardSection.addClass(g_classConnected); 24 25 } 26 27 /* 28 * show what sections are connected to stacking card in editor 29 */ 30 function findSectionsInEditor(g_stackingCardItem){ 31 32 //cloned section's id 33 var g_stackingCardItemId = g_stackingCardItem.data("id"); 34 35 var stackingCardItemSource = g_stackingCardItem.data("source"); 36 37 var saItemContentWrapper = g_stackingCardItem.find(".ue_content_wrapper.ue_section_id"); 38 39 if(stackingCardItemSource !== "section_id") 40 return(false); 41 42 g_stackingCardItem.addClass('uc-item-message'); 43 44 //stacking card item message in editor 45 var g_stackingCardItemHTML = "<div class='uc-message'>Section with id <b>'" + g_stackingCardItemId + "'</b> connected to stacking card</div>"; 46 47 //paste section 48 saItemContentWrapper.html(g_stackingCardItemHTML); 49 50 } 51 52 /* 53 * handle section find error 54 */ 55 function showHideErrors(g_stackingCardItem, stackingCardItemId, sectionToClone) { 56 57 var showErrors = g_stackingCard.data("errors"); 58 var stackingCardItemSource = g_stackingCardItem.data("source"); 59 var saItemContentWrapper = g_stackingCardItem.find(".ue_content_wrapper.ue_section_id"); 60 61 if (!g_isInEditor) { 62 if (showErrors === false) { 63 return(false); 64 } 65 } 66 67 if(stackingCardItemSource !== "section_id") 68 return(false); 69 70 //check if section with id from stacking card item exist 71 if(sectionToClone.length > 0) 72 return(false); 73 74 //if section with id from stacking card item does not exist, then add error clas to stacking card item 75 g_stackingCardItem.addClass('uc-item-error'); 76 77 //add error html element 78 saItemContentWrapper.html("<div class='uc-section-error'><div class='uc-error'>Couldn't find a section with id: '" + stackingCardItemId + "'</div></div>"); 79 80 } 81 82 /* 83 * show | hide section in editor 84 */ 85 function hideSectionInEditor(sectionToClone){ 86 87 if(g_isInEditor == false) 88 return(false); 89 90 //affect only section that are not in connected to stacking card 91 if(sectionToClone.hasClass(g_classConnected) == true) 92 return(false); 93 94 var dataShowInEditor = g_stackingCard.data('show-section'); 95 96 if(dataShowInEditor == 'no') 97 sectionToClone.css('display', ''); 98 99 if(dataShowInEditor == 'hide') 100 sectionToClone.hide(); 101 } 102 103 /* 104 * define item type "section" behaviour on live page 105 */ 106 function handleItemTypeSection(){ 107 108 g_stackingCardItems.each(function(){ 109 110 var g_stackingCardItem = jQuery(this); 111 112 var stackingCardItemId = g_stackingCardItem.data("id"); 113 114 if(!stackingCardItemId) 115 return; 116 117 //find sections to clone on the page 118 var sectionToClone = jQuery("#" + stackingCardItemId); 119 120 //clone and paste section from elementor layout 121 findSections(g_stackingCardItem, sectionToClone); 122 123 var stackingCardItemSource = g_stackingCardItem.data("source"); 124 if(stackingCardItemSource !== "section_id") 125 return; 126 127 //see if stacking card item id has its element on the page 128 showHideErrors(g_stackingCardItem, stackingCardItemId, sectionToClone); 129 130 }); 131 132 } 133 134 135 /* 136 * define item type "section" behaviour in editor 137 */ 138 function handleItemTypeSectionInEditor(){ 139 140 g_stackingCardItems.each(function(){ 141 142 var g_stackingCardItem = jQuery(this); 143 144 var stackingCardItemId = g_stackingCardItem.data("id"); 145 146 //find sections to clone on the page 147 var sectionToClone = jQuery("#" + stackingCardItemId); 148 149 //tell to user which section is connected 150 findSectionsInEditor(g_stackingCardItem); 151 152 //see if stacking card item id has its element on the page 153 showHideErrors(g_stackingCardItem, stackingCardItemId, sectionToClone); 154 155 //show | hide sections if needed 156 hideSectionInEditor(sectionToClone); 157 158 }); 159 160 } 161 162 163 /* 164 * init stacking card 165 */ 166 this.init = function(objStackingCard){ 167 168 //init globals 169 g_stackingCard = jQuery(objStackingCard); 170 g_stackingCardItems = g_stackingCard.find('.ue_stacking_card_item'); 171 172 g_classConnected = 'uc-connected'; 173 g_activeSliderClass = '.uc-active-item';
174 175 g_isInEditor = g_stackingCard.data("editor"); 176 177 //do not run stacking card in editor 178 if(g_isInEditor == "no") 179 handleItemTypeSection(); 180 181 //in editor run a different function that do not manipulate DOM 182 if(g_isInEditor == "yes") 183 handleItemTypeSectionInEditor(); 184 } 185 }
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.