PageSourceSearch

https://methexis.gr/wp-content/themes/bookworm/assets/js/components/hs.fancybox.js?ver=1.1.3

js methexis.gr collected 2026-10-09 17:54:15 UTC 5,714 bytes, 181 lines download raw bytes

1/**
2 * Fancybox wrapper.
3 *
4 * @author Htmlstream
5 * @version 1.0
6 * @requires
7 *
8 */
9;
10(function ($) {
11  'use strict';
12
13  $.HSCore.components.HSFancyBox = {
14    /**
15     *
16     *
17     * @var Object _baseConfig
18     */
19    _baseConfig: {
20      parentEl: 'html',
21      baseClass: 'u-fancybox-theme',
22      slideClass: 'u-fancybox-slide',
23      speed: 1000,
24      slideSpeedCoefficient: 1,
25      infobar: false,
26      fullScreen: true,
27      thumbs: true,
28      closeBtn: true,
29      baseTpl: '<div class="fancybox-container" role="dialog" tabindex="-1">' +
30        '<div class="fancybox-content">' +
31        '<div class="fancybox-bg"></div>' +
32        '<div class="fancybox-controls" style="position: relative; z-index: 99999;">' +
33        '<div class="fancybox-infobar">' +
34        '<div class="fancybox-infobar__body">' +
35        '<span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span>' +
36        '</div>' +
37        '</div>' +
38        '<div class="fancybox-toolbar">{{BUTTONS}}</div>' +
39        '</div>' +
40        '<div class="fancybox-slider-wrap">' +
41        '<button data-fancybox-prev class="fancybox-arrow fancybox-arrow--left" title="Previous"></button>' +
42        '<button data-fancybox-next class="fancybox-arrow fancybox-arrow--right" title="Next"></button>' +
43        '<div class="fancybox-stage"></div>' +
44        '</div>' +
45        '<div class="fancybox-caption-wrap">' +
46        '<div class="fancybox-caption"></div>' +
47        '</div>' +
48        '</div>' +
49        '</div>',
50      animationEffect: 'fade'
51    },
52
53    /**
54     *
55     *
56     * @var jQuery pageCollection
57     */
58    pageCollection: $(),
59
60    /**
61     * Initialization of Fancybox wrapper.
62     *
63     * @param String selector (optional)
64     * @param Object config (optional)
65     *
66     * @return jQuery pageCollection - collection of initialized items.
67     */
68
69    init: function (selector, config) {
70      if (!selector) return;
71
72      var $collection = $(selector);
73
74      if (!$collection.length) return;
75
76      config = config && $.isPlainObject(config) ? $.extend(true, {}, this._baseConfig, config) : this._baseConfig;
77
78      this.initFancyBox(selector, config);
79    },
80
81    initFancyBox: function (el, conf) {
82      var $fancybox = $(el);
83
84      $fancybox.on('click', function () {
85        var $this = $(this),
86          animationDuration = $this.data('speed'),
87          isGroup = $this.data('fancybox'),
88          isInfinite = Boolean($this.data('is-infinite')),
89          isSlideShowAutoStart = Boolean($this.data('is-slideshow-auto-start')),
90          slideShowSpeed = $this.data('slideshow-speed');
91
92        $.fancybox.defaults.animationDuration = animationDuration;
93
94        if (isInfinite === true) {
95          $.fancybox.defaults.loop = true;
96        }
97
98        if (isSlideShowAutoStart === true) {
99          $.fancybox.defaults.slideShow.autoStart = true;
100        } else {
101          $.fancybox.defaults.slideShow.autoStart = false;
102        }
103
104        if (isGroup) {
105          $.fancybox.defaults.transitionEffect = 'slide';
106          $.fancybox.defaults.slideShow.speed = slideShowSpeed;
107        }
108      });
109
110      $fancybox.fancybox($.extend(true, {}, conf, {
111        beforeShow: function (instance, slide) {
112          var $fancyModal = $(instance.$refs.container),
113            $fancyOverlay = $(instance.$refs.bg[0]),
114            $fancySlide = $(instance.current.$slide),
115
116            animateIn = instance.current.opts.$orig[0].dataset.animateIn,
117            animateOut = instance.current.opts.$orig[0].dataset.animateOut,
118            speed = instance.current.opts.$orig[0].dataset.speed,
119            overlayBG = instance.current.opts.$orig[0].dataset.overlayBg,
120            overlayBlurBG = instance.current.opts.$orig[0].dataset.overlayBlurBg;
121
122          if (animateIn && $('body').hasClass('u-first-slide-init')) {
123            var $fancyPrevSlide = $(instance.slides[instance.prevPos].$slide);
124
125            $fancySlide.addClass('has-animation');
126
127            $fancyPrevSlide.addClass('animated ' + animateOut);
128
129            setTimeout(function () {
130              $fancySlide.addClass('animated ' + animateIn);
131            }, speed / 2);
132          } else if (animateIn) {
133            var $fancyPrevSlide = $(instance.slides[instance.prevPos].$slide);
134
135            $fancySlide.addClass('has-animation');
136
137            $fancySlide.addClass('animated ' + animateIn);
138
139            $('body').addClass('u-first-slide-init');
140
141            $fancySlide.on('animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd', function (e) {
142              $fancySlide.removeClass(animateIn);
143            });
144          }
145
146          if (speed) {
147            $fancyOverlay.css('transition-duration', speed + 'ms');
148          } else {
149            $fancyOverlay.css('transition-duration', '1000ms');
150          }
151
152          if (overlayBG) {
153            $fancyOverlay.css('background-color', overlayBG);
154          }
155
156          if (overlayBlurBG) {
157            $('body').addClass('u-blur-30');
158          }
159        },
160
161        beforeClose: function (instance, slide) {
162          var $fancyModal = $(instance.$refs.container),
163            $fancySlide = $(instance.current.$slide),
164
165            animateIn = instance.current.opts.$orig[0].dataset.animateIn,
166            animateOut = instance.current.opts.$orig[0].dataset.animateOut,
167            overlayBlurBG = instance.current.opts.$orig[0].dataset.overlayBlurBg;
168
169          if (animateOut) {
170            $fancySlide.removeClass(animateIn).addClass(animateOut);
171            $('body').removeClass('u-first-slide-init')
172          }
173
174          if (overlayBlurBG) {
175            $('body').removeClass('u-blur-30')
176          }
177        }
178      }));
179    }
180  }
181})(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.