PageSourceSearch

https://zoyride.ai/assets/js/sticky-sidebar.js

js zoyride.ai collected 2026-10-05 13:21:22 UTC 25,578 bytes, 693 lines download raw bytes

1'use client'
2(function (global, factory) {
3	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
4	typeof define === 'function' && define.amd ? define(['exports'], factory) :
5	(factory((global.StickySidebar = {})));
6}(this, (function (exports) { 'use strict';
7
8var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
9
10
11
12function unwrapExports (x) {
13	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
14}
15
16function createCommonjsModule(fn, module) {
17	return module = { exports: {} }, fn(module, module.exports), module.exports;
18}
19
20var stickySidebar = createCommonjsModule(function (module, exports) {
21(function (global, factory) {
22  if (typeof undefined === "function" && undefined.amd) {
23    undefined(['exports'], factory);
24  } else {
25    factory(exports);
26  }
27})(commonjsGlobal, function (exports) {
28  Object.defineProperty(exports, "__esModule", {
29    value: true
30  });
31
32  function _classCallCheck(instance, Constructor) {
33    if (!(instance instanceof Constructor)) {
34      throw new TypeError("Cannot call a class as a function");
35    }
36  }
37
38  var _createClass = function () {
39    function defineProperties(target, props) {
40      for (var i = 0; i < props.length; i++) {
41        var descriptor = props[i];
42        descriptor.enumerable = descriptor.enumerable || false;
43        descriptor.configurable = true;
44        if ("value" in descriptor) descriptor.writable = true;
45        Object.defineProperty(target, descriptor.key, descriptor);
46      }
47    }
48
49    return function (Constructor, protoProps, staticProps) {
50      if (protoProps) defineProperties(Constructor.prototype, protoProps);
51      if (staticProps) defineProperties(Constructor, staticProps);
52      return Constructor;
53    };
54  }();
55
56  /**
57   * Sticky Sidebar JavaScript Plugin.
58   * @version 3.3.4
59   * @author Ahmed Bouhuolia <[email protected]>
60   * @license The MIT License (MIT)
61   */
62  var StickySidebar = function () {
63
64    // ---------------------------------
65    // # Define Constants
66    // ---------------------------------
67    //
68    var EVENT_KEY = '.stickySidebar';
69    var DEFAULTS = {
70      /**
71       * Additional top spacing of the element when it becomes sticky.
72       * @type {Numeric|Function}
73       */
74      topSpacing: 0,
75
76      /**
77       * Additional bottom spacing of the element when it becomes sticky.
78       * @type {Numeric|Function}
79       */
80      bottomSpacing: 0,
81
82      /**
83       * Container sidebar selector to know what the beginning and end of sticky element.
84       * @type {String|False}
85       */
86      containerSelector: false,
87
88      /**
89       * Inner wrapper selector.
90       * @type {String}
91       */
92      innerWrapperSelector: '.inner-wrapper-sticky',
93
94      /**
95       * The name of CSS class to apply to elements when they have become stuck.
96       * @type {String|False}
97       */
98      stickyClass: '',  //verify again here stickyClass: 'is-affixed',
99
100      /**
101       * Detect when sidebar and its container change height so re-calculate their dimensions.
102       * @type {Boolean}
103       */
104      resizeSensor: true,
105
106      /**
107       * The sidebar returns to its normal position if its width below this value.
108       * @type {Numeric}
109       */
110      minWidth: false
111    };
112
113    // ---------------------------------
114    // # Class Definition
115    // ---------------------------------
116    //
117    /**
118     * Sticky Sidebar Class.
119     * @public
120     */
121
122    var StickySidebar = function () {
123
124      /**
125       * Sticky Sidebar Constructor.
126       * @constructor
127       * @param {HTMLElement|String} sidebar - The sidebar element or sidebar selector.
128       * @param {Object} options - The options of sticky sidebar.
129       */
130      function StickySidebar(sidebar) {
131        var _this = this;
132
133        var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
134
135        _classCallCheck(this, StickySidebar);
136
137        this.options = StickySidebar.extend(DEFAULTS, options);
138
139        // Sidebar element query if there's no one, throw error.
140        this.sidebar = 'string' === typeof sidebar ? document.querySelector(sidebar) : sidebar;
141        if ('undefined' === typeof this.sidebar) throw new Error("There is no specific sidebar element.");
142
143        this.sidebarInner = false;
144        this.container = this.sidebar.parentElement;
145
146        // Current Affix Type of sidebar element.
147        this.affixedType = 'STATIC';
148        this.direction = 'down';
149        this.support = {
150          transform: false,
151          transform3d: false
152        };
153
154        this._initialized = false;
155        this._reStyle = false;
156        this._breakpoint = false;
157
158        // Dimensions of sidebar, container and screen viewport.
159        this.dimensions = {
160          translateY: 0,
161          maxTranslateY: 0,
162          topSpacing: 0,
163          lastTopSpacing: 0,
164          bottomSpacing: 0,
165          lastBottomSpacing: 0,
166          sidebarHeight: 0,
167          sidebarWidth: 0,
168          containerTop: 0,
169          containerHeight: 0,
170          viewportHeight: 0,
171          viewportTop: 0,
172          lastViewportTop: 0
173        };
174
175        // Bind event handlers for referencability.
176        ['handleEvent'].forEach(function (method) {
177          _this[method] = _this[method].bind(_this);
178        });
179
180        // Initialize sticky sidebar for first time.
181        this.initialize();
182      }
183
184      /**
185       * Initializes the sticky sidebar by adding inner wrapper, define its container, 
186       * min-width breakpoint, calculating dimensions, adding helper classes and inline style.
187       * @private
188       */
189
190
191      _createClass(StickySidebar, [{
192        key: 'initialize',
193        value: function initialize() {
194          var _this2 = this;
195
196          this._setSupportFeatures();
197
198          // Get sticky sidebar inner wrapper, if not found, will create one.
199          if (this.options.innerWrapperSelector) {
200            this.sidebarInner = this.sidebar.querySelector(this.options.innerWrapperSelector);
201
202            if (null === this.sidebarInner) this.sidebarInner = false;
203          }
204
205          if (!this.sidebarInner) {
206            var wrapper = document.createElement('div');
207            wrapper.setAttribute('class', 'inner-wrapper-sticky');
208            this.sidebar.appendChild(wrapper);
209
210            while (this.sidebar.firstChild != wrapper) {
211              wrapper.appendChild(this.sidebar.firstChild);
212            }this.sidebarInner = this.sidebar.querySelector('.inner-wrapper-sticky');
213          }
214
215          // Container wrapper of the sidebar.
216          if (this.options.containerSelector) {
217            var containers = document.querySelectorAll(this.options.containerSelector);
218            containers = Array.prototype.slice.call(containers);
219
220            containers.forEach(function (container, item) {
221              if (!container.contains(_this2.sidebar)) return;
222              _this2.container = container;
223            });
224
225            if (!containers.length) throw new Error("The container does not contains on the sidebar.");
226          }
227
228          // If top/bottom spacing is not function parse value to integer.
229          if ('function' !== typeof this.options.topSpacing) this.options.topSpacing = parseInt(this.options.topSpacing) || 0;
230
231          if ('function' !== typeof this.options.bottomSpacing) this.options.bottomSpacing = parseInt(this.options.bottomSpacing) || 0;
232
233          // Breakdown sticky sidebar if screen width below `options.minWidth`.
234          this._widthBreakpoint();
235
236          // Calculate dimensions of sidebar, container and viewport.
237          this.calcDimensions();
238
239          // Affix sidebar in proper position.
240          this.stickyPosition();
241
242          // Bind all events.
243          this.bindEvents();
244
vendor: 4,110 bytes, lines 245-342
245          // Inform other properties the sticky sidebar is initialized.
246          this._initialized = true;
247        }
248      }, {
249        key: 'bindEvents',
250        value: function bindEvents() {
251          window.addEventListener('resize', this, { passive: true, capture: false });
252          window.addEventListener('scroll', this, { passive: true, capture: false });
253
254          this.sidebar.addEventListener('update' + EVENT_KEY, this);
255
256          if (this.options.resizeSensor && 'undefined' !== typeof ResizeSensor) {
257            new ResizeSensor(this.sidebarInner, this.handleEvent);
258            new ResizeSensor(this.container, this.handleEvent);
259          }
260        }
261      }, {
262        key: 'handleEvent',
263        value: function handleEvent(event) {
264          this.updateSticky(event);
265        }
266      }, {
267        key: 'calcDimensions',
268        value: function calcDimensions() {
269          if (this._breakpoint) return;
270          var dims = this.dimensions;
271
272          // Container of sticky sidebar dimensions.
273          dims.containerTop = StickySidebar.offsetRelative(this.container).top;
274          dims.containerHeight = this.container.clientHeight;
275          dims.containerBottom = dims.containerTop + dims.containerHeight;
276
277          // Sidebar dimensions.
278          dims.sidebarHeight = this.sidebarInner.offsetHeight;
279          dims.sidebarWidth = this.sidebarInner.offsetWidth;
280
281          // Screen viewport dimensions.
282          dims.viewportHeight = window.innerHeight;
283
284          // Maximum sidebar translate Y.
285          dims.maxTranslateY = dims.containerHeight - dims.sidebarHeight;
286
287          this._calcDimensionsWithScroll();
288        }
289      }, {
290        key: '_calcDimensionsWithScroll',
291        value: function _calcDimensionsWithScroll() {
292          var dims = this.dimensions;
293
294          dims.sidebarLeft = StickySidebar.offsetRelative(this.sidebar).left;
295
296          dims.viewportTop = document.documentElement.scrollTop || document.body.scrollTop;
297          dims.viewportBottom = dims.viewportTop + dims.viewportHeight;
298          dims.viewportLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
299
300          dims.topSpacing = this.options.topSpacing;
301          dims.bottomSpacing = this.options.bottomSpacing;
302
303          if ('function' === typeof dims.topSpacing) dims.topSpacing = parseInt(dims.topSpacing(this.sidebar)) || 0;
304
305          if ('function' === typeof dims.bottomSpacing) dims.bottomSpacing = parseInt(dims.bottomSpacing(this.sidebar)) || 0;
306
307          if ('VIEWPORT-TOP' === this.affixedType) {
308            // Adjust translate Y in the case decrease top spacing value.
309            if (dims.topSpacing < dims.lastTopSpacing) {
310              dims.translateY += dims.lastTopSpacing - dims.topSpacing;
311              this._reStyle = true;
312            }
313          } else if ('VIEWPORT-BOTTOM' === this.affixedType) {
314            // Adjust translate Y in the case decrease bottom spacing value.
315            if (dims.bottomSpacing < dims.lastBottomSpacing) {
316              dims.translateY += dims.lastBottomSpacing - dims.bottomSpacing;
317              this._reStyle = true;
318            }
319          }
320
321          dims.lastTopSpacing = dims.topSpacing;
322          dims.lastBottomSpacing = dims.bottomSpacing;
323        }
324      }, {
325        key: 'isSidebarFitsViewport',
326        value: function isSidebarFitsViewport() {
327          var dims = this.dimensions;
328          var offset = this.scrollDirection === 'down' ? dims.lastBottomSpacing : dims.lastTopSpacing;
329          return this.dimensions.sidebarHeight + offset < this.dimensions.viewportHeight;
330        }
331      }, {
332        key: 'observeScrollDir',
333        value: function observeScrollDir() {
334          var dims = this.dimensions;
335          if (dims.lastViewportTop === dims.viewportTop) return;
336
337          var furthest = 'down' === this.direction ? Math.min : Math.max;
338
339          // If the browser is scrolling not in the same direction.
340          if (dims.viewportTop === furthest(dims.viewportTop, dims.lastViewportTop)) this.direction = 'down' === this.direction ? 'up' : 'down';
341        }
342      }, {
vendor: 5,307 bytes, lines 343-469
343        key: 'getAffixType',
344        value: function getAffixType() {
345          this._calcDimensionsWithScroll();
346          var dims = this.dimensions;
347          var colliderTop = dims.viewportTop + dims.topSpacing;
348          var affixType = this.affixedType;
349
350          if (colliderTop <= dims.containerTop || dims.containerHeight <= dims.sidebarHeight) {
351            dims.translateY = 0;
352            affixType = 'STATIC';
353          } else {
354            affixType = 'up' === this.direction ? this._getAffixTypeScrollingUp() : this._getAffixTypeScrollingDown();
355          }
356
357          // Make sure the translate Y is not bigger than container height.
358          dims.translateY = Math.max(0, dims.translateY);
359          dims.translateY = Math.min(dims.containerHeight, dims.translateY);
360          dims.translateY = Math.round(dims.translateY);
361
362          dims.lastViewportTop = dims.viewportTop;
363          return affixType;
364        }
365      }, {
366        key: '_getAffixTypeScrollingDown',
367        value: function _getAffixTypeScrollingDown() {
368          var dims = this.dimensions;
369          var sidebarBottom = dims.sidebarHeight + dims.containerTop;
370          var colliderTop = dims.viewportTop + dims.topSpacing;
371          var colliderBottom = dims.viewportBottom - dims.bottomSpacing;
372          var affixType = this.affixedType;
373
374          if (this.isSidebarFitsViewport()) {
375            if (dims.sidebarHeight + colliderTop >= dims.containerBottom) {
376              dims.translateY = dims.containerBottom - sidebarBottom;
377              affixType = 'CONTAINER-BOTTOM';
378            } else if (colliderTop >= dims.containerTop) {
379              dims.translateY = colliderTop - dims.containerTop;
380              affixType = 'VIEWPORT-TOP';
381            }
382          } else {
383            if (dims.containerBottom <= colliderBottom) {
384              dims.translateY = dims.containerBottom - sidebarBottom;
385              affixType = 'CONTAINER-BOTTOM';
386            } else if (sidebarBottom + dims.translateY <= colliderBottom) {
387              dims.translateY = colliderBottom - sidebarBottom;
388              affixType = 'VIEWPORT-BOTTOM';
389            } else if (dims.containerTop + dims.translateY <= colliderTop && 0 !== dims.translateY && dims.maxTranslateY !== dims.translateY) {
390              affixType = 'VIEWPORT-UNBOTTOM';
391            }
392          }
393
394          return affixType;
395        }
396      }, {
397        key: '_getAffixTypeScrollingUp',
398        value: function _getAffixTypeScrollingUp() {
399          var dims = this.dimensions;
400          var sidebarBottom = dims.sidebarHeight + dims.containerTop;
401          var colliderTop = dims.viewportTop + dims.topSpacing;
402          var colliderBottom = dims.viewportBottom - dims.bottomSpacing;
403          var affixType = this.affixedType;
404
405          if (colliderTop <= dims.translateY + dims.containerTop) {
406            dims.translateY = colliderTop - dims.containerTop;
407            affixType = 'VIEWPORT-TOP';
408          } else if (dims.containerBottom <= colliderBottom) {
409            dims.translateY = dims.containerBottom - sidebarBottom;
410            affixType = 'CONTAINER-BOTTOM';
411          } else if (!this.isSidebarFitsViewport()) {
412
413            if (dims.containerTop <= colliderTop && 0 !== dims.translateY && dims.maxTranslateY !== dims.translateY) {
414              affixType = 'VIEWPORT-UNBOTTOM';
415            }
416          }
417
418          return affixType;
419        }
420      }, {
421        key: '_getStyle',
422        value: function _getStyle(affixType) {
423          if ('undefined' === typeof affixType) return;
424
425          var style = { inner: {}, outer: {} };
426          var dims = this.dimensions;
427
428          switch (affixType) {
429            case 'VIEWPORT-TOP':
430              style.inner = { position: 'fixed', top: dims.topSpacing,
431                left: dims.sidebarLeft - dims.viewportLeft, width: dims.sidebarWidth };
432              break;
433            case 'VIEWPORT-BOTTOM':
434              style.inner = { position: 'fixed', top: 'auto', left: dims.sidebarLeft,
435                bottom: dims.bottomSpacing, width: dims.sidebarWidth };
436              break;
437            case 'CONTAINER-BOTTOM':
438            case 'VIEWPORT-UNBOTTOM':
439              var translate = this._getTranslate(0, dims.translateY + 'px');
440
441              if (translate) style.inner = { transform: translate };else style.inner = { position: 'absolute', top: dims.translateY, width: dims.sidebarWidth };
442              break;
443          }
444
445          switch (affixType) {
446            case 'VIEWPORT-TOP':
447            case 'VIEWPORT-BOTTOM':
448            case 'VIEWPORT-UNBOTTOM':
449            case 'CONTAINER-BOTTOM':
450              style.outer = { height: dims.sidebarHeight, position: 'relative' };
451              break;
452          }
453
454          style.outer = StickySidebar.extend({ height: '', position: '' }, style.outer);
455          style.inner = StickySidebar.extend({ position: 'relative', top: '', left: '',
456            bottom: '', width: '', transform: '' }, style.inner);
457
458          return style;
459        }
460      }, {
461        key: 'stickyPosition',
462        value: function stickyPosition(force) {
463          if (this._breakpoint) return;
464
465          force = this._reStyle || force || false;
466
467          var offsetTop = this.options.topSpacing;
468          var offsetBottom = this.options.bottomSpacing;
469
vendor: 8,290 bytes, lines 470-693
470          var affixType = this.getAffixType();
471          var style = this._getStyle(affixType);
472
473          if ((this.affixedType != affixType || force) && affixType) {
474            var affixEvent = 'affix.' + affixType.toLowerCase().replace('viewport-', '') + EVENT_KEY;
475            StickySidebar.eventTrigger(this.sidebar, affixEvent);
476
477            if ('STATIC' === affixType) StickySidebar.removeClass(this.sidebar, this.options.stickyClass);else StickySidebar.addClass(this.sidebar, this.options.stickyClass);
478
479            for (var key in style.outer) {
480              var unit = 'number' === typeof style.outer[key] ? 'px' : '';
481              this.sidebar.style[key] = style.outer[key] + unit;
482            }
483
484            for (var _key in style.inner) {
485              var _unit = 'number' === typeof style.inner[_key] ? 'px' : '';
486              this.sidebarInner.style[_key] = style.inner[_key] + _unit;
487            }
488
489            var affixedEvent = 'affixed.' + affixType.toLowerCase().replace('viewport-', '') + EVENT_KEY;
490            StickySidebar.eventTrigger(this.sidebar, affixedEvent);
491          } else {
492            if (this._initialized) this.sidebarInner.style.left = style.inner.left;
493          }
494
495          this.affixedType = affixType;
496        }
497      }, {
498        key: '_widthBreakpoint',
499        value: function _widthBreakpoint() {
500
501          if (window.innerWidth <= this.options.minWidth) {
502            this._breakpoint = true;
503            this.affixedType = 'STATIC';
504
505            this.sidebar.removeAttribute('style');
506            StickySidebar.removeClass(this.sidebar, this.options.stickyClass);
507            this.sidebarInner.removeAttribute('style');
508          } else {
509            this._breakpoint = false;
510          }
511        }
512      }, {
513        key: 'updateSticky',
514        value: function updateSticky() {
515          var _this3 = this;
516
517          var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
518
519          if (this._running) return;
520          this._running = true;
521
522          (function (eventType) {
523            requestAnimationFrame(function () {
524              switch (eventType) {
525                // When browser is scrolling and re-calculate just dimensions
526                // within scroll. 
527                case 'scroll':
528                  _this3._calcDimensionsWithScroll();
529                  _this3.observeScrollDir();
530                  _this3.stickyPosition();
531                  break;
532
533                // When browser is resizing or there's no event, observe width
534                // breakpoint and re-calculate dimensions.
535                case 'resize':
536                default:
537                  _this3._widthBreakpoint();
538                  _this3.calcDimensions();
539                  _this3.stickyPosition(true);
540                  break;
541              }
542              _this3._running = false;
543            });
544          })(event.type);
545        }
546      }, {
547        key: '_setSupportFeatures',
548        value: function _setSupportFeatures() {
549          var support = this.support;
550
551          support.transform = StickySidebar.supportTransform();
552          support.transform3d = StickySidebar.supportTransform(true);
553        }
554      }, {
555        key: '_getTranslate',
556        value: function _getTranslate() {
557          var y = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
558          var x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
559          var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
560
561          if (this.support.transform3d) return 'translate3d(' + y + ', ' + x + ', ' + z + ')';else if (this.support.translate) return 'translate(' + y + ', ' + x + ')';else return false;
562        }
563      }, {
564        key: 'destroy',
565        value: function destroy() {
566          window.removeEventListener('resize', this, { capture: false });
567          window.removeEventListener('scroll', this, { capture: false });
568
569          this.sidebar.classList.remove(this.options.stickyClass);
570          this.sidebar.style.minHeight = '';
571
572          this.sidebar.removeEventListener('update' + EVENT_KEY, this);
573
574          var styleReset = { inner: {}, outer: {} };
575
576          styleReset.inner = { position: '', top: '', left: '', bottom: '', width: '', transform: '' };
577          styleReset.outer = { height: '', position: '' };
578
579          for (var key in styleReset.outer) {
580            this.sidebar.style[key] = styleReset.outer[key];
581          }for (var _key2 in styleReset.inner) {
582            this.sidebarInner.style[_key2] = styleReset.inner[_key2];
583          }if (this.options.resizeSensor && 'undefined' !== typeof ResizeSensor) {
584            ResizeSensor.detach(this.sidebarInner, this.handleEvent);
585            ResizeSensor.detach(this.container, this.handleEvent);
586          }
587        }
588      }], [{
589        key: 'supportTransform',
590        value: function supportTransform(transform3d) {
591          var result = false,
592              property = transform3d ? 'perspective' : 'transform',
593              upper = property.charAt(0).toUpperCase() + property.slice(1),
594              prefixes = ['Webkit', 'Moz', 'O', 'ms'],
595              support = document.createElement('support'),
596              style = support.style;
597
598          (property + ' ' + prefixes.join(upper + ' ') + upper).split(' ').forEach(function (property, i) {
599            if (style[property] !== undefined) {
600              result = property;
601              return false;
602            }
603          });
604          return result;
605        }
606      }, {
607        key: 'eventTrigger',
608        value: function eventTrigger(element, eventName, data) {
609          try {
610            var event = new CustomEvent(eventName, { detail: data });
611          } catch (e) {
612            var event = document.createEvent('CustomEvent');
613            event.initCustomEvent(eventName, true, true, data);
614          }
615          element.dispatchEvent(event);
616        }
617      }, {
618        key: 'extend',
619        value: function extend(defaults, options) {
620          var results = {};
621          for (var key in defaults) {
622            if ('undefined' !== typeof options[key]) results[key] = options[key];else results[key] = defaults[key];
623          }
624          return results;
625        }
626      }, {
627        key: 'offsetRelative',
628        value: function offsetRelative(element) {
629          var result = { left: 0, top: 0 };
630
631          do {
632            var offsetTop = element.offsetTop;
633            var offsetLeft = element.offsetLeft;
634
635            if (!isNaN(offsetTop)) result.top += offsetTop;
636
637            if (!isNaN(offsetLeft)) result.left += offsetLeft;
638
639            element = 'BODY' === element.tagName ? element.parentElement : element.offsetParent;
640          } while (element);
641          return result;
642        }
643      }, {
644        key: 'addClass',
645        value: function addClass(element, className) {
646          if (!StickySidebar.hasClass(element, className)) {
647            if (element.classList) element.classList.add(className);else element.className += ' ' + className;
648          }
649        }
650      }, {
651        key: 'removeClass',
652        value: function removeClass(element, className) {
653          if (StickySidebar.hasClass(element, className)) {
654            if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
655          }
656        }
657      }, {
658        key: 'hasClass',
659        value: function hasClass(element, className) {
660          if (element.classList) return element.classList.contains(className);else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);
661        }
662      }, {
663        key: 'defaults',
664        get: function () {
665          return DEFAULTS;
666        }
667      }]);
668
669      return StickySidebar;
670    }();
671
672    return StickySidebar;
673  }();
674
675  exports.default = StickySidebar;
676
677
678  // Global
679  // -------------------------
680  window.StickySidebar = StickySidebar;
681});
682});
683
684var stickySidebar$1 = unwrapExports(stickySidebar);
685
686exports['default'] = stickySidebar$1;
687exports.__moduleExports = stickySidebar;
688
689Object.defineProperty(exports, '__esModule', { value: true });
690
691})));
692
693//# sourceMappingURL=sticky-sidebar.js.map

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.