https://www.singerfrance.com/modules/creativeelements/views/lib/sticky/jquery.sticky.min.js?v=2.10.1
1/* 2 * By Elementor & WebshopWorks Team 3 */ 4!function(O){function i(t,o){function i(t,o,s){var e={},i=t[0].style;s.forEach(function(t){e[t]=void 0!==i[t]?i[t]:""}),t.data("css-backup-"+o,e)}function s(){i(r,"unsticky",["position","width","margin-top","margin-bottom","top","bottom"]);var t={position:"fixed",width:n(r,"width"),marginTop:0,marginBottom:0};t[c.to]=c.offset,t["top"===c.to?"bottom":"top"]="",r.css(t).addClass(c.classes.stickyActive)}function e(){r.css(y(r,"unsticky")).removeClass(c.classes.stickyActive)}function n(t,o,s){var e=getComputedStyle(t[0]),i=parseFloat(e[o]),n="height"===o?["top","bottom"]:["left","right"],t=[];return"border-box"!==e.boxSizing&&t.push("border","padding"),s&&t.push("margin"),t.forEach(function(o){n.forEach(function(t){i+=parseFloat(e[o+"-"+t])})}),i}var r,a,c,f=!1,p=!1,d=!1,l=pageYOffset,m={},u={to:"top",offset:0,effectsOffset:0,parent:!1,classes:{sticky:"sticky",stickyActive:"sticky-active",stickyEffects:"sticky-effects",spacer:"sticky-spacer"}},y=function(t,o){return t.data("css-backup-"+o)},h=function(t){var o=m.$window.scrollTop(),s=n(t,"height"),e=innerHeight,t=t.offset().top-o,o=t-e;return{top:{fromTop:t,fromBottom:o},bottom:{fromTop:t+s,fromBottom:o+s}}},k=function(){m.$spacer=r.clone().addClass(c.classes.spacer).css({visibility:"hidden",transition:"none",animation:"none"}),r.after(m.$spacer),s(),f=!0,r.find("input[checked]").prop("checked",!0),r.trigger("sticky:stick")},g=function(){e(),m.$spacer.remove(),f=!1,r.trigger("sticky:unstick")},v=function(){var t,o,s=h(r),e="top"===c.to;p?(e?s.top.fromTop>c.offset:s.bottom.fromBottom<-c.offset)&&(m.$parent.css(y(m.$parent,"childNotFollowing")),r.css(y(r,"notFollowing")),p=!1):(t=h(m.$parent),o=getComputedStyle(m.$parent[0]),o=parseFloat(o[e?"borderBottomWidth":"borderTopWidth"]),t=e?t.bottom.fromTop-o:t.top.fromBottom+o,(e?t<=s.bottom.fromTop:t>=s.top.fromBottom)&&(i(m.$parent,"childNotFollowing",["position"]),m.$parent.css("position","relative"),i(r,"notFollowing",["position","top","bottom"]),(o={position:"absolute"})[c.to]="",o["top"===c.to?"bottom":"top"]=0,r.css(o),p=!0))},b=function(t){d&&-t<c.effectsOffset?(r.removeClass(c.classes.stickyEffects),d=!1):!d&&-t>=c.effectsOffset&&(r.addClass(c.classes.stickyEffects),d=!0)},w=function(){var t,o,s=c.offset;f?(t=h(m.$spacer),t="top"===c.to?t.top.fromTop-s:-t.bottom.fromBottom-s,c.parent&&v(),0<t&&g()):(o=h(r),(t="top"===c.to?o.top.fromTop-s:-o.bottom.fromBottom-s)<=0&&(k(),c.parent&&v())),b(t)},$=function(){var t;f&&c.autoHide&&(t=c.autoHideOffset.size*("vh"===c.autoHideOffset.unit?O(window).height()/100:1),pageYOffset>=t&&pageYOffset>l+10&&!r.find(".elementor-cart--shown, .elementor-search--topbar").length&&r.off("transitionend.ceSticky").css({transition:"transform "+c.autoHideDuration.size+"s",transform:"translateY(calc(-100% - "+c.offset+"px))"}).addClass(c.classes.stickyHide),(pageYOffset<t||pageYOffset<l-10)&&r.removeClass(c.classes.stickyHide).css("transform","").one("transitionend.ceSticky",function(){r.css("transition","")}),l=pageYOffset),w()},C=function(){f&&(e(),s(),c.parent&&(p=!1,v()))};this.destroy=function(){f&&g(),m.$window.off("scroll",$),a.disconnect(),r.removeClass(c.classes.sticky).css("transform","").off("transitionend.ceSticky").removeClass(c.classes.stickyHide)},c=jQuery.extend(!0,u,o),r=O(t).addClass(c.classes.sticky),m.$window=O(window),c.parent&&("parent"===c.parent?m.$parent=r.parent():m.$parent=r.closest(c.parent)),m.$window.on({scroll:$}),(a=new ResizeObserver(C)).observe(jQuery("body > main")[0]||document.body),w()}O.fn.sticky=function(s){var e="string"==typeof s;return this.each(function(){var t=O(this);if(e){var o=t.data("sticky");if(!o)throw Error("Trying to perform the `"+s+"` method prior to initialization");if(!o[s])throw ReferenceError("Method `"+s+"` not found in sticky instance");o[s].apply(o,Array.prototype.slice.call(arguments,1)),"destroy"===s&&t.removeData("sticky")}else t.data("sticky",new i(this,s))}),this},window.Sticky=i}(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.