PageSourceSearch

https://ndalalive.com/wp-content/uploads/ac_assets/stacking_cards/StackingCard.js?ver=2.0.20

js ndalalive.com collected 2026-09-24 08:57:48 UTC 5,628 bytes, 185 lines download raw bytes

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.