jquery.fancybox.min.js
3720 lines
| 1 | // ================================================== |
| 2 | // fancyBox v3.5.7 |
| 3 | // |
| 4 | // Licensed GPLv3 for open source use |
| 5 | // or fancyBox Commercial License for commercial use |
| 6 | // |
| 7 | // http://fancyapps.com/fancybox/ |
| 8 | // Copyright 2019 fancyApps |
| 9 | // |
| 10 | // ================================================== |
| 11 | !(function (t, e, n, o) { |
| 12 | 'use strict'; |
| 13 | function i(t, e) { |
| 14 | var o, |
| 15 | i, |
| 16 | a, |
| 17 | s = [], |
| 18 | r = 0; |
| 19 | (t && t.isDefaultPrevented()) || |
| 20 | (t.preventDefault(), |
| 21 | (e = e || {}), |
| 22 | t && t.data && (e = h(t.data.options, e)), |
| 23 | (o = e.$target || n(t.currentTarget).trigger('blur')), |
| 24 | ((a = n.fancybox.getInstance()) && |
| 25 | a.$trigger && |
| 26 | a.$trigger.is(o)) || |
| 27 | (e.selector |
| 28 | ? (s = n(e.selector)) |
| 29 | : ((i = o.attr('data-fancybox') || ''), |
| 30 | i |
| 31 | ? ((s = t.data ? t.data.items : []), |
| 32 | (s = s.length |
| 33 | ? s.filter('[data-fancybox="' + i + '"]') |
| 34 | : n('[data-fancybox="' + i + '"]'))) |
| 35 | : (s = [o])), |
| 36 | (r = n(s).index(o)), |
| 37 | r < 0 && (r = 0), |
| 38 | (a = n.fancybox.open(s, e, r)), |
| 39 | (a.$trigger = o))); |
| 40 | } |
| 41 | if (((t.console = t.console || { info: function (t) {} }), n)) { |
| 42 | if (n.fn.fancybox) |
| 43 | return void console.info('fancyBox already initialized'); |
| 44 | var a = { |
| 45 | closeExisting: !1, |
| 46 | loop: !1, |
| 47 | gutter: 50, |
| 48 | keyboard: !0, |
| 49 | preventCaptionOverlap: !0, |
| 50 | arrows: !0, |
| 51 | infobar: !0, |
| 52 | smallBtn: 'auto', |
| 53 | toolbar: 'auto', |
| 54 | buttons: ['zoom', 'slideShow', 'thumbs', 'close'], |
| 55 | idleTime: 3, |
| 56 | protect: !1, |
| 57 | modal: !1, |
| 58 | image: { preload: !1 }, |
| 59 | ajax: { settings: { data: { fancybox: !0 } } }, |
| 60 | iframe: { |
| 61 | tpl: |
| 62 | '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>', |
| 63 | preload: !0, |
| 64 | css: {}, |
| 65 | attr: { scrolling: 'auto' }, |
| 66 | }, |
| 67 | video: { |
| 68 | tpl: |
| 69 | '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!</video>', |
| 70 | format: '', |
| 71 | autoStart: !0, |
| 72 | }, |
| 73 | defaultType: 'image', |
| 74 | animationEffect: 'zoom', |
| 75 | animationDuration: 366, |
| 76 | zoomOpacity: 'auto', |
| 77 | transitionEffect: 'fade', |
| 78 | transitionDuration: 366, |
| 79 | slideClass: '', |
| 80 | baseClass: '', |
| 81 | baseTpl: |
| 82 | '<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span> / <span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"><div class="fancybox-caption__body"></div></div></div></div>', |
| 83 | spinnerTpl: '<div class="fancybox-loading"></div>', |
| 84 | errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>', |
| 85 | btnTpl: { |
| 86 | download: |
| 87 | '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg></a>', |
| 88 | zoom: |
| 89 | '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg></button>', |
| 90 | close: |
| 91 | '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg></button>', |
| 92 | arrowLeft: |
| 93 | '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div></button>', |
| 94 | arrowRight: |
| 95 | '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div></button>', |
| 96 | smallBtn: |
| 97 | '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg></button>', |
| 98 | }, |
| 99 | parentEl: 'body', |
| 100 | hideScrollbar: !0, |
| 101 | autoFocus: !0, |
| 102 | backFocus: !0, |
| 103 | trapFocus: !0, |
| 104 | fullScreen: { autoStart: !1 }, |
| 105 | touch: { vertical: !0, momentum: !0 }, |
| 106 | hash: null, |
| 107 | media: {}, |
| 108 | slideShow: { autoStart: !1, speed: 3e3 }, |
| 109 | thumbs: { |
| 110 | autoStart: !1, |
| 111 | hideOnClose: !0, |
| 112 | parentEl: '.fancybox-container', |
| 113 | axis: 'y', |
| 114 | }, |
| 115 | wheel: 'auto', |
| 116 | onInit: n.noop, |
| 117 | beforeLoad: n.noop, |
| 118 | afterLoad: n.noop, |
| 119 | beforeShow: n.noop, |
| 120 | afterShow: n.noop, |
| 121 | beforeClose: n.noop, |
| 122 | afterClose: n.noop, |
| 123 | onActivate: n.noop, |
| 124 | onDeactivate: n.noop, |
| 125 | clickContent: function (t, e) { |
| 126 | return 'image' === t.type && 'zoom'; |
| 127 | }, |
| 128 | clickSlide: 'close', |
| 129 | clickOutside: 'close', |
| 130 | dblclickContent: !1, |
| 131 | dblclickSlide: !1, |
| 132 | dblclickOutside: !1, |
| 133 | mobile: { |
| 134 | preventCaptionOverlap: !1, |
| 135 | idleTime: !1, |
| 136 | clickContent: function (t, e) { |
| 137 | return 'image' === t.type && 'toggleControls'; |
| 138 | }, |
| 139 | clickSlide: function (t, e) { |
| 140 | return 'image' === t.type ? 'toggleControls' : 'close'; |
| 141 | }, |
| 142 | dblclickContent: function (t, e) { |
| 143 | return 'image' === t.type && 'zoom'; |
| 144 | }, |
| 145 | dblclickSlide: function (t, e) { |
| 146 | return 'image' === t.type && 'zoom'; |
| 147 | }, |
| 148 | }, |
| 149 | lang: 'en', |
| 150 | i18n: { |
| 151 | en: { |
| 152 | CLOSE: 'Close', |
| 153 | NEXT: 'Next', |
| 154 | PREV: 'Previous', |
| 155 | ERROR: |
| 156 | 'The requested content cannot be loaded. <br/> Please try again later.', |
| 157 | PLAY_START: 'Start slideshow', |
| 158 | PLAY_STOP: 'Pause slideshow', |
| 159 | FULL_SCREEN: 'Full screen', |
| 160 | THUMBS: 'Thumbnails', |
| 161 | DOWNLOAD: 'Download', |
| 162 | SHARE: 'Share', |
| 163 | ZOOM: 'Zoom', |
| 164 | }, |
| 165 | de: { |
| 166 | CLOSE: 'Schließen', |
| 167 | NEXT: 'Weiter', |
| 168 | PREV: 'Zurück', |
| 169 | ERROR: |
| 170 | 'Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es später nochmal.', |
| 171 | PLAY_START: 'Diaschau starten', |
| 172 | PLAY_STOP: 'Diaschau beenden', |
| 173 | FULL_SCREEN: 'Vollbild', |
| 174 | THUMBS: 'Vorschaubilder', |
| 175 | DOWNLOAD: 'Herunterladen', |
| 176 | SHARE: 'Teilen', |
| 177 | ZOOM: 'Vergrößern', |
| 178 | }, |
| 179 | }, |
| 180 | }, |
| 181 | s = n(t), |
| 182 | r = n(e), |
| 183 | c = 0, |
| 184 | l = function (t) { |
| 185 | return t && t.hasOwnProperty && t instanceof n; |
| 186 | }, |
| 187 | d = (function () { |
| 188 | return ( |
| 189 | t.requestAnimationFrame || |
| 190 | t.webkitRequestAnimationFrame || |
| 191 | t.mozRequestAnimationFrame || |
| 192 | t.oRequestAnimationFrame || |
| 193 | function (e) { |
| 194 | return t.setTimeout(e, 1e3 / 60); |
| 195 | } |
| 196 | ); |
| 197 | })(), |
| 198 | u = (function () { |
| 199 | return ( |
| 200 | t.cancelAnimationFrame || |
| 201 | t.webkitCancelAnimationFrame || |
| 202 | t.mozCancelAnimationFrame || |
| 203 | t.oCancelAnimationFrame || |
| 204 | function (e) { |
| 205 | t.clearTimeout(e); |
| 206 | } |
| 207 | ); |
| 208 | })(), |
| 209 | f = (function () { |
| 210 | var t, |
| 211 | n = e.createElement('fakeelement'), |
| 212 | o = { |
| 213 | transition: 'transitionend', |
| 214 | OTransition: 'oTransitionEnd', |
| 215 | MozTransition: 'transitionend', |
| 216 | WebkitTransition: 'webkitTransitionEnd', |
| 217 | }; |
| 218 | for (t in o) if (void 0 !== n.style[t]) return o[t]; |
| 219 | return 'transitionend'; |
| 220 | })(), |
| 221 | p = function (t) { |
| 222 | return t && t.length && t[0].offsetHeight; |
| 223 | }, |
| 224 | h = function (t, e) { |
| 225 | var o = n.extend(!0, {}, t, e); |
| 226 | return ( |
| 227 | n.each(e, function (t, e) { |
| 228 | n.isArray(e) && (o[t] = e); |
| 229 | }), |
| 230 | o |
| 231 | ); |
| 232 | }, |
| 233 | g = function (t) { |
| 234 | var o, i; |
| 235 | return ( |
| 236 | !(!t || t.ownerDocument !== e) && |
| 237 | (n('.fancybox-container').css('pointer-events', 'none'), |
| 238 | (o = { |
| 239 | x: t.getBoundingClientRect().left + t.offsetWidth / 2, |
| 240 | y: t.getBoundingClientRect().top + t.offsetHeight / 2, |
| 241 | }), |
| 242 | (i = e.elementFromPoint(o.x, o.y) === t), |
| 243 | n('.fancybox-container').css('pointer-events', ''), |
| 244 | i) |
| 245 | ); |
| 246 | }, |
| 247 | b = function (t, e, o) { |
| 248 | var i = this; |
| 249 | (i.opts = h({ index: o }, n.fancybox.defaults)), |
| 250 | n.isPlainObject(e) && (i.opts = h(i.opts, e)), |
| 251 | n.fancybox.isMobile && (i.opts = h(i.opts, i.opts.mobile)), |
| 252 | (i.id = i.opts.id || ++c), |
| 253 | (i.currIndex = parseInt(i.opts.index, 10) || 0), |
| 254 | (i.prevIndex = null), |
| 255 | (i.prevPos = null), |
| 256 | (i.currPos = 0), |
| 257 | (i.firstRun = !0), |
| 258 | (i.group = []), |
| 259 | (i.slides = {}), |
| 260 | i.addContent(t), |
| 261 | i.group.length && i.init(); |
| 262 | }; |
| 263 | n.extend(b.prototype, { |
| 264 | init: function () { |
| 265 | var o, |
| 266 | i, |
| 267 | a = this, |
| 268 | s = a.group[a.currIndex], |
| 269 | r = s.opts; |
| 270 | r.closeExisting && n.fancybox.close(!0), |
| 271 | n('body').addClass('fancybox-active'), |
| 272 | !n.fancybox.getInstance() && |
| 273 | !1 !== r.hideScrollbar && |
| 274 | !n.fancybox.isMobile && |
| 275 | e.body.scrollHeight > t.innerHeight && |
| 276 | (n('head').append( |
| 277 | '<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' + |
| 278 | (t.innerWidth - e.documentElement.clientWidth) + |
| 279 | 'px;}</style>' |
| 280 | ), |
| 281 | n('body').addClass('compensate-for-scrollbar')), |
| 282 | (i = ''), |
| 283 | n.each(r.buttons, function (t, e) { |
| 284 | i += r.btnTpl[e] || ''; |
| 285 | }), |
| 286 | (o = n( |
| 287 | a.translate( |
| 288 | a, |
| 289 | r.baseTpl |
| 290 | .replace('{{buttons}}', i) |
| 291 | .replace( |
| 292 | '{{arrows}}', |
| 293 | r.btnTpl.arrowLeft + r.btnTpl.arrowRight |
| 294 | ) |
| 295 | ) |
| 296 | ) |
| 297 | .attr('id', 'fancybox-container-' + a.id) |
| 298 | .addClass(r.baseClass) |
| 299 | .data('FancyBox', a) |
| 300 | .appendTo(r.parentEl)), |
| 301 | (a.$refs = { container: o }), |
| 302 | [ |
| 303 | 'bg', |
| 304 | 'inner', |
| 305 | 'infobar', |
| 306 | 'toolbar', |
| 307 | 'stage', |
| 308 | 'caption', |
| 309 | 'navigation', |
| 310 | ].forEach(function (t) { |
| 311 | a.$refs[t] = o.find('.fancybox-' + t); |
| 312 | }), |
| 313 | a.trigger('onInit'), |
| 314 | a.activate(), |
| 315 | a.jumpTo(a.currIndex); |
| 316 | }, |
| 317 | translate: function (t, e) { |
| 318 | var n = t.opts.i18n[t.opts.lang] || t.opts.i18n.en; |
| 319 | return e.replace(/\{\{(\w+)\}\}/g, function (t, e) { |
| 320 | return void 0 === n[e] ? t : n[e]; |
| 321 | }); |
| 322 | }, |
| 323 | addContent: function (t) { |
| 324 | var e, |
| 325 | o = this, |
| 326 | i = n.makeArray(t); |
| 327 | n.each(i, function (t, e) { |
| 328 | var i, |
| 329 | a, |
| 330 | s, |
| 331 | r, |
| 332 | c, |
| 333 | l = {}, |
| 334 | d = {}; |
| 335 | n.isPlainObject(e) |
| 336 | ? ((l = e), (d = e.opts || e)) |
| 337 | : 'object' === n.type(e) && n(e).length |
| 338 | ? ((i = n(e)), |
| 339 | (d = i.data() || {}), |
| 340 | (d = n.extend(!0, {}, d, d.options)), |
| 341 | (d.$orig = i), |
| 342 | (l.src = o.opts.src || d.src || i.attr('href')), |
| 343 | l.type || l.src || ((l.type = 'inline'), (l.src = e))) |
| 344 | : (l = { type: 'html', src: e + '' }), |
| 345 | (l.opts = n.extend(!0, {}, o.opts, d)), |
| 346 | n.isArray(d.buttons) && (l.opts.buttons = d.buttons), |
| 347 | n.fancybox.isMobile && |
| 348 | l.opts.mobile && |
| 349 | (l.opts = h(l.opts, l.opts.mobile)), |
| 350 | (a = l.type || l.opts.type), |
| 351 | (r = l.src || ''), |
| 352 | !a && |
| 353 | r && |
| 354 | ((s = r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) |
| 355 | ? ((a = 'video'), |
| 356 | l.opts.video.format || |
| 357 | (l.opts.video.format = |
| 358 | 'video/' + |
| 359 | ('ogv' === s[1] ? 'ogg' : s[1]))) |
| 360 | : r.match( |
| 361 | /(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i |
| 362 | ) |
| 363 | ? (a = 'image') |
| 364 | : r.match(/\.(pdf)((\?|#).*)?$/i) |
| 365 | ? ((a = 'iframe'), |
| 366 | (l = n.extend(!0, l, { |
| 367 | contentType: 'pdf', |
| 368 | opts: { iframe: { preload: !1 } }, |
| 369 | }))) |
| 370 | : '#' === r.charAt(0) && (a = 'inline')), |
| 371 | a ? (l.type = a) : o.trigger('objectNeedsType', l), |
| 372 | l.contentType || |
| 373 | (l.contentType = |
| 374 | n.inArray(l.type, ['html', 'inline', 'ajax']) > |
| 375 | -1 |
| 376 | ? 'html' |
| 377 | : l.type), |
| 378 | (l.index = o.group.length), |
| 379 | 'auto' == l.opts.smallBtn && |
| 380 | (l.opts.smallBtn = |
| 381 | n.inArray(l.type, ['html', 'inline', 'ajax']) > |
| 382 | -1), |
| 383 | 'auto' === l.opts.toolbar && |
| 384 | (l.opts.toolbar = !l.opts.smallBtn), |
| 385 | (l.$thumb = l.opts.$thumb || null), |
| 386 | l.opts.$trigger && |
| 387 | l.index === o.opts.index && |
| 388 | ((l.$thumb = l.opts.$trigger.find('img:first')), |
| 389 | l.$thumb.length && |
| 390 | (l.opts.$orig = l.opts.$trigger)), |
| 391 | (l.$thumb && l.$thumb.length) || |
| 392 | !l.opts.$orig || |
| 393 | (l.$thumb = l.opts.$orig.find('img:first')), |
| 394 | l.$thumb && !l.$thumb.length && (l.$thumb = null), |
| 395 | (l.thumb = |
| 396 | l.opts.thumb || |
| 397 | (l.$thumb ? l.$thumb[0].src : null)), |
| 398 | 'function' === n.type(l.opts.caption) && |
| 399 | (l.opts.caption = l.opts.caption.apply(e, [o, l])), |
| 400 | 'function' === n.type(o.opts.caption) && |
| 401 | (l.opts.caption = o.opts.caption.apply(e, [o, l])), |
| 402 | l.opts.caption instanceof n || |
| 403 | (l.opts.caption = |
| 404 | void 0 === l.opts.caption |
| 405 | ? '' |
| 406 | : l.opts.caption + ''), |
| 407 | 'ajax' === l.type && |
| 408 | ((c = r.split(/\s+/, 2)), |
| 409 | c.length > 1 && |
| 410 | ((l.src = c.shift()), |
| 411 | (l.opts.filter = c.shift()))), |
| 412 | l.opts.modal && |
| 413 | (l.opts = n.extend(!0, l.opts, { |
| 414 | trapFocus: !0, |
| 415 | infobar: 0, |
| 416 | toolbar: 0, |
| 417 | smallBtn: 0, |
| 418 | keyboard: 0, |
| 419 | slideShow: 0, |
| 420 | fullScreen: 0, |
| 421 | thumbs: 0, |
| 422 | touch: 0, |
| 423 | clickContent: !1, |
| 424 | clickSlide: !1, |
| 425 | clickOutside: !1, |
| 426 | dblclickContent: !1, |
| 427 | dblclickSlide: !1, |
| 428 | dblclickOutside: !1, |
| 429 | })), |
| 430 | o.group.push(l); |
| 431 | }), |
| 432 | Object.keys(o.slides).length && |
| 433 | (o.updateControls(), |
| 434 | (e = o.Thumbs) && |
| 435 | e.isActive && |
| 436 | (e.create(), e.focus())); |
| 437 | }, |
| 438 | addEvents: function () { |
| 439 | var e = this; |
| 440 | e.removeEvents(), |
| 441 | e.$refs.container |
| 442 | .on( |
| 443 | 'click.fb-close', |
| 444 | '[data-fancybox-close]', |
| 445 | function (t) { |
| 446 | t.stopPropagation(), |
| 447 | t.preventDefault(), |
| 448 | e.close(t); |
| 449 | } |
| 450 | ) |
| 451 | .on( |
| 452 | 'touchstart.fb-prev click.fb-prev', |
| 453 | '[data-fancybox-prev]', |
| 454 | function (t) { |
| 455 | t.stopPropagation(), |
| 456 | t.preventDefault(), |
| 457 | e.previous(); |
| 458 | } |
| 459 | ) |
| 460 | .on( |
| 461 | 'touchstart.fb-next click.fb-next', |
| 462 | '[data-fancybox-next]', |
| 463 | function (t) { |
| 464 | t.stopPropagation(), |
| 465 | t.preventDefault(), |
| 466 | e.next(); |
| 467 | } |
| 468 | ) |
| 469 | .on('click.fb', '[data-fancybox-zoom]', function (t) { |
| 470 | e[ |
| 471 | e.isScaledDown() |
| 472 | ? 'scaleToActual' |
| 473 | : 'scaleToFit' |
| 474 | ](); |
| 475 | }), |
| 476 | s.on('orientationchange.fb resize.fb', function (t) { |
| 477 | t && |
| 478 | t.originalEvent && |
| 479 | 'resize' === t.originalEvent.type |
| 480 | ? (e.requestId && u(e.requestId), |
| 481 | (e.requestId = d(function () { |
| 482 | e.update(t); |
| 483 | }))) |
| 484 | : (e.current && |
| 485 | 'iframe' === e.current.type && |
| 486 | e.$refs.stage.hide(), |
| 487 | setTimeout( |
| 488 | function () { |
| 489 | e.$refs.stage.show(), e.update(t); |
| 490 | }, |
| 491 | n.fancybox.isMobile ? 600 : 250 |
| 492 | )); |
| 493 | }), |
| 494 | r.on('keydown.fb', function (t) { |
| 495 | var o = n.fancybox ? n.fancybox.getInstance() : null, |
| 496 | i = o.current, |
| 497 | a = t.keyCode || t.which; |
| 498 | if (9 == a) |
| 499 | return void (i.opts.trapFocus && e.focus(t)); |
| 500 | if ( |
| 501 | !( |
| 502 | !i.opts.keyboard || |
| 503 | t.ctrlKey || |
| 504 | t.altKey || |
| 505 | t.shiftKey || |
| 506 | n(t.target).is( |
| 507 | 'input,textarea,video,audio,select' |
| 508 | ) |
| 509 | ) |
| 510 | ) |
| 511 | return 8 === a || 27 === a |
| 512 | ? (t.preventDefault(), void e.close(t)) |
| 513 | : 37 === a || 38 === a |
| 514 | ? (t.preventDefault(), void e.previous()) |
| 515 | : 39 === a || 40 === a |
| 516 | ? (t.preventDefault(), void e.next()) |
| 517 | : void e.trigger('afterKeydown', t, a); |
| 518 | }), |
| 519 | e.group[e.currIndex].opts.idleTime && |
| 520 | ((e.idleSecondsCounter = 0), |
| 521 | r.on( |
| 522 | 'mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle', |
| 523 | function (t) { |
| 524 | (e.idleSecondsCounter = 0), |
| 525 | e.isIdle && e.showControls(), |
| 526 | (e.isIdle = !1); |
| 527 | } |
| 528 | ), |
| 529 | (e.idleInterval = t.setInterval(function () { |
| 530 | ++e.idleSecondsCounter >= |
| 531 | e.group[e.currIndex].opts.idleTime && |
| 532 | !e.isDragging && |
| 533 | ((e.isIdle = !0), |
| 534 | (e.idleSecondsCounter = 0), |
| 535 | e.hideControls()); |
| 536 | }, 1e3))); |
| 537 | }, |
| 538 | removeEvents: function () { |
| 539 | var e = this; |
| 540 | s.off('orientationchange.fb resize.fb'), |
| 541 | r.off('keydown.fb .fb-idle'), |
| 542 | this.$refs.container.off('.fb-close .fb-prev .fb-next'), |
| 543 | e.idleInterval && |
| 544 | (t.clearInterval(e.idleInterval), |
| 545 | (e.idleInterval = null)); |
| 546 | }, |
| 547 | previous: function (t) { |
| 548 | return this.jumpTo(this.currPos - 1, t); |
| 549 | }, |
| 550 | next: function (t) { |
| 551 | return this.jumpTo(this.currPos + 1, t); |
| 552 | }, |
| 553 | jumpTo: function (t, e) { |
| 554 | var o, |
| 555 | i, |
| 556 | a, |
| 557 | s, |
| 558 | r, |
| 559 | c, |
| 560 | l, |
| 561 | d, |
| 562 | u, |
| 563 | f = this, |
| 564 | h = f.group.length; |
| 565 | if ( |
| 566 | !( |
| 567 | f.isDragging || |
| 568 | f.isClosing || |
| 569 | (f.isAnimating && f.firstRun) |
| 570 | ) |
| 571 | ) { |
| 572 | if ( |
| 573 | ((t = parseInt(t, 10)), |
| 574 | !(a = f.current ? f.current.opts.loop : f.opts.loop) && |
| 575 | (t < 0 || t >= h)) |
| 576 | ) |
| 577 | return !1; |
| 578 | if ( |
| 579 | ((o = f.firstRun = !Object.keys(f.slides).length), |
| 580 | (r = f.current), |
| 581 | (f.prevIndex = f.currIndex), |
| 582 | (f.prevPos = f.currPos), |
| 583 | (s = f.createSlide(t)), |
| 584 | h > 1 && |
| 585 | ((a || s.index < h - 1) && f.createSlide(t + 1), |
| 586 | (a || s.index > 0) && f.createSlide(t - 1)), |
| 587 | (f.current = s), |
| 588 | (f.currIndex = s.index), |
| 589 | (f.currPos = s.pos), |
| 590 | f.trigger('beforeShow', o), |
| 591 | f.updateControls(), |
| 592 | (s.forcedDuration = void 0), |
| 593 | n.isNumeric(e) |
| 594 | ? (s.forcedDuration = e) |
| 595 | : (e = |
| 596 | s.opts[ |
| 597 | o |
| 598 | ? 'animationDuration' |
| 599 | : 'transitionDuration' |
| 600 | ]), |
| 601 | (e = parseInt(e, 10)), |
| 602 | (i = f.isMoved(s)), |
| 603 | s.$slide.addClass('fancybox-slide--current'), |
| 604 | o) |
| 605 | ) |
| 606 | return ( |
| 607 | s.opts.animationEffect && |
| 608 | e && |
| 609 | f.$refs.container.css( |
| 610 | 'transition-duration', |
| 611 | e + 'ms' |
| 612 | ), |
| 613 | f.$refs.container |
| 614 | .addClass('fancybox-is-open') |
| 615 | .trigger('focus'), |
| 616 | f.loadSlide(s), |
| 617 | void f.preload('image') |
| 618 | ); |
| 619 | (c = n.fancybox.getTranslate(r.$slide)), |
| 620 | (l = n.fancybox.getTranslate(f.$refs.stage)), |
| 621 | n.each(f.slides, function (t, e) { |
| 622 | n.fancybox.stop(e.$slide, !0); |
| 623 | }), |
| 624 | r.pos !== s.pos && (r.isComplete = !1), |
| 625 | r.$slide.removeClass( |
| 626 | 'fancybox-slide--complete fancybox-slide--current' |
| 627 | ), |
| 628 | i |
| 629 | ? ((u = |
| 630 | c.left - |
| 631 | (r.pos * c.width + r.pos * r.opts.gutter)), |
| 632 | n.each(f.slides, function (t, o) { |
| 633 | o.$slide |
| 634 | .removeClass('fancybox-animated') |
| 635 | .removeClass(function (t, e) { |
| 636 | return ( |
| 637 | e.match( |
| 638 | /(^|\s)fancybox-fx-\S+/g |
| 639 | ) || [] |
| 640 | ).join(' '); |
| 641 | }); |
| 642 | var i = |
| 643 | o.pos * c.width + o.pos * o.opts.gutter; |
| 644 | n.fancybox.setTranslate(o.$slide, { |
| 645 | top: 0, |
| 646 | left: i - l.left + u, |
| 647 | }), |
| 648 | o.pos !== s.pos && |
| 649 | o.$slide.addClass( |
| 650 | 'fancybox-slide--' + |
| 651 | (o.pos > s.pos |
| 652 | ? 'next' |
| 653 | : 'previous') |
| 654 | ), |
| 655 | p(o.$slide), |
| 656 | n.fancybox.animate( |
| 657 | o.$slide, |
| 658 | { |
| 659 | top: 0, |
| 660 | left: |
| 661 | (o.pos - s.pos) * c.width + |
| 662 | (o.pos - s.pos) * |
| 663 | o.opts.gutter, |
| 664 | }, |
| 665 | e, |
| 666 | function () { |
| 667 | o.$slide |
| 668 | .css({ |
| 669 | transform: '', |
| 670 | opacity: '', |
| 671 | }) |
| 672 | .removeClass( |
| 673 | 'fancybox-slide--next fancybox-slide--previous' |
| 674 | ), |
| 675 | o.pos === f.currPos && |
| 676 | f.complete(); |
| 677 | } |
| 678 | ); |
| 679 | })) |
| 680 | : e && |
| 681 | s.opts.transitionEffect && |
| 682 | ((d = |
| 683 | 'fancybox-animated fancybox-fx-' + |
| 684 | s.opts.transitionEffect), |
| 685 | r.$slide.addClass( |
| 686 | 'fancybox-slide--' + |
| 687 | (r.pos > s.pos ? 'next' : 'previous') |
| 688 | ), |
| 689 | n.fancybox.animate( |
| 690 | r.$slide, |
| 691 | d, |
| 692 | e, |
| 693 | function () { |
| 694 | r.$slide |
| 695 | .removeClass(d) |
| 696 | .removeClass( |
| 697 | 'fancybox-slide--next fancybox-slide--previous' |
| 698 | ); |
| 699 | }, |
| 700 | !1 |
| 701 | )), |
| 702 | s.isLoaded ? f.revealContent(s) : f.loadSlide(s), |
| 703 | f.preload('image'); |
| 704 | } |
| 705 | }, |
| 706 | createSlide: function (t) { |
| 707 | var e, |
| 708 | o, |
| 709 | i = this; |
| 710 | return ( |
| 711 | (o = t % i.group.length), |
| 712 | (o = o < 0 ? i.group.length + o : o), |
| 713 | !i.slides[t] && |
| 714 | i.group[o] && |
| 715 | ((e = n('<div class="fancybox-slide"></div>').appendTo( |
| 716 | i.$refs.stage |
| 717 | )), |
| 718 | (i.slides[t] = n.extend(!0, {}, i.group[o], { |
| 719 | pos: t, |
| 720 | $slide: e, |
| 721 | isLoaded: !1, |
| 722 | })), |
| 723 | i.updateSlide(i.slides[t])), |
| 724 | i.slides[t] |
| 725 | ); |
| 726 | }, |
| 727 | scaleToActual: function (t, e, o) { |
| 728 | var i, |
| 729 | a, |
| 730 | s, |
| 731 | r, |
| 732 | c, |
| 733 | l = this, |
| 734 | d = l.current, |
| 735 | u = d.$content, |
| 736 | f = n.fancybox.getTranslate(d.$slide).width, |
| 737 | p = n.fancybox.getTranslate(d.$slide).height, |
| 738 | h = d.width, |
| 739 | g = d.height; |
| 740 | l.isAnimating || |
| 741 | l.isMoved() || |
| 742 | !u || |
| 743 | 'image' != d.type || |
| 744 | !d.isLoaded || |
| 745 | d.hasError || |
| 746 | ((l.isAnimating = !0), |
| 747 | n.fancybox.stop(u), |
| 748 | (t = void 0 === t ? 0.5 * f : t), |
| 749 | (e = void 0 === e ? 0.5 * p : e), |
| 750 | (i = n.fancybox.getTranslate(u)), |
| 751 | (i.top -= n.fancybox.getTranslate(d.$slide).top), |
| 752 | (i.left -= n.fancybox.getTranslate(d.$slide).left), |
| 753 | (r = h / i.width), |
| 754 | (c = g / i.height), |
| 755 | (a = 0.5 * f - 0.5 * h), |
| 756 | (s = 0.5 * p - 0.5 * g), |
| 757 | h > f && |
| 758 | ((a = i.left * r - (t * r - t)), |
| 759 | a > 0 && (a = 0), |
| 760 | a < f - h && (a = f - h)), |
| 761 | g > p && |
| 762 | ((s = i.top * c - (e * c - e)), |
| 763 | s > 0 && (s = 0), |
| 764 | s < p - g && (s = p - g)), |
| 765 | l.updateCursor(h, g), |
| 766 | n.fancybox.animate( |
| 767 | u, |
| 768 | { top: s, left: a, scaleX: r, scaleY: c }, |
| 769 | o || 366, |
| 770 | function () { |
| 771 | l.isAnimating = !1; |
| 772 | } |
| 773 | ), |
| 774 | l.SlideShow && l.SlideShow.isActive && l.SlideShow.stop()); |
| 775 | }, |
| 776 | scaleToFit: function (t) { |
| 777 | var e, |
| 778 | o = this, |
| 779 | i = o.current, |
| 780 | a = i.$content; |
| 781 | o.isAnimating || |
| 782 | o.isMoved() || |
| 783 | !a || |
| 784 | 'image' != i.type || |
| 785 | !i.isLoaded || |
| 786 | i.hasError || |
| 787 | ((o.isAnimating = !0), |
| 788 | n.fancybox.stop(a), |
| 789 | (e = o.getFitPos(i)), |
| 790 | o.updateCursor(e.width, e.height), |
| 791 | n.fancybox.animate( |
| 792 | a, |
| 793 | { |
| 794 | top: e.top, |
| 795 | left: e.left, |
| 796 | scaleX: e.width / a.width(), |
| 797 | scaleY: e.height / a.height(), |
| 798 | }, |
| 799 | t || 366, |
| 800 | function () { |
| 801 | o.isAnimating = !1; |
| 802 | } |
| 803 | )); |
| 804 | }, |
| 805 | getFitPos: function (t) { |
| 806 | var e, |
| 807 | o, |
| 808 | i, |
| 809 | a, |
| 810 | s = this, |
| 811 | r = t.$content, |
| 812 | c = t.$slide, |
| 813 | l = t.width || t.opts.width, |
| 814 | d = t.height || t.opts.height, |
| 815 | u = {}; |
| 816 | return ( |
| 817 | !!(t.isLoaded && r && r.length) && |
| 818 | ((e = n.fancybox.getTranslate(s.$refs.stage).width), |
| 819 | (o = n.fancybox.getTranslate(s.$refs.stage).height), |
| 820 | (e -= |
| 821 | parseFloat(c.css('paddingLeft')) + |
| 822 | parseFloat(c.css('paddingRight')) + |
| 823 | parseFloat(r.css('marginLeft')) + |
| 824 | parseFloat(r.css('marginRight'))), |
| 825 | (o -= |
| 826 | parseFloat(c.css('paddingTop')) + |
| 827 | parseFloat(c.css('paddingBottom')) + |
| 828 | parseFloat(r.css('marginTop')) + |
| 829 | parseFloat(r.css('marginBottom'))), |
| 830 | (l && d) || ((l = e), (d = o)), |
| 831 | (i = Math.min(1, e / l, o / d)), |
| 832 | (l *= i), |
| 833 | (d *= i), |
| 834 | l > e - 0.5 && (l = e), |
| 835 | d > o - 0.5 && (d = o), |
| 836 | 'image' === t.type |
| 837 | ? ((u.top = |
| 838 | Math.floor(0.5 * (o - d)) + |
| 839 | parseFloat(c.css('paddingTop'))), |
| 840 | (u.left = |
| 841 | Math.floor(0.5 * (e - l)) + |
| 842 | parseFloat(c.css('paddingLeft')))) |
| 843 | : 'video' === t.contentType && |
| 844 | ((a = |
| 845 | t.opts.width && t.opts.height |
| 846 | ? l / d |
| 847 | : t.opts.ratio || 16 / 9), |
| 848 | d > l / a ? (d = l / a) : l > d * a && (l = d * a)), |
| 849 | (u.width = l), |
| 850 | (u.height = d), |
| 851 | u) |
| 852 | ); |
| 853 | }, |
| 854 | update: function (t) { |
| 855 | var e = this; |
| 856 | n.each(e.slides, function (n, o) { |
| 857 | e.updateSlide(o, t); |
| 858 | }); |
| 859 | }, |
| 860 | updateSlide: function (t, e) { |
| 861 | var o = this, |
| 862 | i = t && t.$content, |
| 863 | a = t.width || t.opts.width, |
| 864 | s = t.height || t.opts.height, |
| 865 | r = t.$slide; |
| 866 | o.adjustCaption(t), |
| 867 | i && |
| 868 | (a || s || 'video' === t.contentType) && |
| 869 | !t.hasError && |
| 870 | (n.fancybox.stop(i), |
| 871 | n.fancybox.setTranslate(i, o.getFitPos(t)), |
| 872 | t.pos === o.currPos && |
| 873 | ((o.isAnimating = !1), o.updateCursor())), |
| 874 | o.adjustLayout(t), |
| 875 | r.length && |
| 876 | (r.trigger('refresh'), |
| 877 | t.pos === o.currPos && |
| 878 | o.$refs.toolbar |
| 879 | .add( |
| 880 | o.$refs.navigation.find( |
| 881 | '.fancybox-button--arrow_right' |
| 882 | ) |
| 883 | ) |
| 884 | .toggleClass( |
| 885 | 'compensate-for-scrollbar', |
| 886 | r.get(0).scrollHeight > |
| 887 | r.get(0).clientHeight |
| 888 | )), |
| 889 | o.trigger('onUpdate', t, e); |
| 890 | }, |
| 891 | centerSlide: function (t) { |
| 892 | var e = this, |
| 893 | o = e.current, |
| 894 | i = o.$slide; |
| 895 | !e.isClosing && |
| 896 | o && |
| 897 | (i.siblings().css({ transform: '', opacity: '' }), |
| 898 | i |
| 899 | .parent() |
| 900 | .children() |
| 901 | .removeClass( |
| 902 | 'fancybox-slide--previous fancybox-slide--next' |
| 903 | ), |
| 904 | n.fancybox.animate( |
| 905 | i, |
| 906 | { top: 0, left: 0, opacity: 1 }, |
| 907 | void 0 === t ? 0 : t, |
| 908 | function () { |
| 909 | i.css({ transform: '', opacity: '' }), |
| 910 | o.isComplete || e.complete(); |
| 911 | }, |
| 912 | !1 |
| 913 | )); |
| 914 | }, |
| 915 | isMoved: function (t) { |
| 916 | var e, |
| 917 | o, |
| 918 | i = t || this.current; |
| 919 | return ( |
| 920 | !!i && |
| 921 | ((o = n.fancybox.getTranslate(this.$refs.stage)), |
| 922 | (e = n.fancybox.getTranslate(i.$slide)), |
| 923 | !i.$slide.hasClass('fancybox-animated') && |
| 924 | (Math.abs(e.top - o.top) > 0.5 || |
| 925 | Math.abs(e.left - o.left) > 0.5)) |
| 926 | ); |
| 927 | }, |
| 928 | updateCursor: function (t, e) { |
| 929 | var o, |
| 930 | i, |
| 931 | a = this, |
| 932 | s = a.current, |
| 933 | r = a.$refs.container; |
| 934 | s && |
| 935 | !a.isClosing && |
| 936 | a.Guestures && |
| 937 | (r.removeClass( |
| 938 | 'fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan' |
| 939 | ), |
| 940 | (o = a.canPan(t, e)), |
| 941 | (i = !!o || a.isZoomable()), |
| 942 | r.toggleClass('fancybox-is-zoomable', i), |
| 943 | n('[data-fancybox-zoom]').prop('disabled', !i), |
| 944 | o |
| 945 | ? r.addClass('fancybox-can-pan') |
| 946 | : i && |
| 947 | ('zoom' === s.opts.clickContent || |
| 948 | (n.isFunction(s.opts.clickContent) && |
| 949 | 'zoom' == s.opts.clickContent(s))) |
| 950 | ? r.addClass('fancybox-can-zoomIn') |
| 951 | : s.opts.touch && |
| 952 | (s.opts.touch.vertical || a.group.length > 1) && |
| 953 | 'video' !== s.contentType && |
| 954 | r.addClass('fancybox-can-swipe')); |
| 955 | }, |
| 956 | isZoomable: function () { |
| 957 | var t, |
| 958 | e = this, |
| 959 | n = e.current; |
| 960 | if (n && !e.isClosing && 'image' === n.type && !n.hasError) { |
| 961 | if (!n.isLoaded) return !0; |
| 962 | if ( |
| 963 | (t = e.getFitPos(n)) && |
| 964 | (n.width > t.width || n.height > t.height) |
| 965 | ) |
| 966 | return !0; |
| 967 | } |
| 968 | return !1; |
| 969 | }, |
| 970 | isScaledDown: function (t, e) { |
| 971 | var o = this, |
| 972 | i = !1, |
| 973 | a = o.current, |
| 974 | s = a.$content; |
| 975 | return ( |
| 976 | void 0 !== t && void 0 !== e |
| 977 | ? (i = t < a.width && e < a.height) |
| 978 | : s && |
| 979 | ((i = n.fancybox.getTranslate(s)), |
| 980 | (i = i.width < a.width && i.height < a.height)), |
| 981 | i |
| 982 | ); |
| 983 | }, |
| 984 | canPan: function (t, e) { |
| 985 | var o = this, |
| 986 | i = o.current, |
| 987 | a = null, |
| 988 | s = !1; |
| 989 | return ( |
| 990 | 'image' === i.type && |
| 991 | (i.isComplete || (t && e)) && |
| 992 | !i.hasError && |
| 993 | ((s = o.getFitPos(i)), |
| 994 | void 0 !== t && void 0 !== e |
| 995 | ? (a = { width: t, height: e }) |
| 996 | : i.isComplete && |
| 997 | (a = n.fancybox.getTranslate(i.$content)), |
| 998 | a && |
| 999 | s && |
| 1000 | (s = |
| 1001 | Math.abs(a.width - s.width) > 1.5 || |
| 1002 | Math.abs(a.height - s.height) > 1.5)), |
| 1003 | s |
| 1004 | ); |
| 1005 | }, |
| 1006 | loadSlide: function (t) { |
| 1007 | var e, |
| 1008 | o, |
| 1009 | i, |
| 1010 | a = this; |
| 1011 | if (!t.isLoading && !t.isLoaded) { |
| 1012 | if (((t.isLoading = !0), !1 === a.trigger('beforeLoad', t))) |
| 1013 | return (t.isLoading = !1), !1; |
| 1014 | switch ( |
| 1015 | ((e = t.type), |
| 1016 | (o = t.$slide), |
| 1017 | o |
| 1018 | .off('refresh') |
| 1019 | .trigger('onReset') |
| 1020 | .addClass(t.opts.slideClass), |
| 1021 | e) |
| 1022 | ) { |
| 1023 | case 'image': |
| 1024 | a.setImage(t); |
| 1025 | break; |
| 1026 | case 'iframe': |
| 1027 | a.setIframe(t); |
| 1028 | break; |
| 1029 | case 'html': |
| 1030 | a.setContent(t, t.src || t.content); |
| 1031 | break; |
| 1032 | case 'video': |
| 1033 | a.setContent( |
| 1034 | t, |
| 1035 | t.opts.video.tpl |
| 1036 | .replace(/\{\{src\}\}/gi, t.src) |
| 1037 | .replace( |
| 1038 | '{{format}}', |
| 1039 | t.opts.videoFormat || |
| 1040 | t.opts.video.format || |
| 1041 | '' |
| 1042 | ) |
| 1043 | .replace('{{poster}}', t.thumb || '') |
| 1044 | ); |
| 1045 | break; |
| 1046 | case 'inline': |
| 1047 | n(t.src).length |
| 1048 | ? a.setContent(t, n(t.src)) |
| 1049 | : a.setError(t); |
| 1050 | break; |
| 1051 | case 'ajax': |
| 1052 | a.showLoading(t), |
| 1053 | (i = n.ajax( |
| 1054 | n.extend({}, t.opts.ajax.settings, { |
| 1055 | url: t.src, |
| 1056 | success: function (e, n) { |
| 1057 | 'success' === n && |
| 1058 | a.setContent(t, e); |
| 1059 | }, |
| 1060 | error: function (e, n) { |
| 1061 | e && 'abort' !== n && a.setError(t); |
| 1062 | }, |
| 1063 | }) |
| 1064 | )), |
| 1065 | o.one('onReset', function () { |
| 1066 | i.abort(); |
| 1067 | }); |
| 1068 | break; |
| 1069 | default: |
| 1070 | a.setError(t); |
| 1071 | } |
| 1072 | return !0; |
| 1073 | } |
| 1074 | }, |
| 1075 | setImage: function (t) { |
| 1076 | var o, |
| 1077 | i = this; |
| 1078 | setTimeout(function () { |
| 1079 | var e = t.$image; |
| 1080 | i.isClosing || |
| 1081 | !t.isLoading || |
| 1082 | (e && e.length && e[0].complete) || |
| 1083 | t.hasError || |
| 1084 | i.showLoading(t); |
| 1085 | }, 50), |
| 1086 | i.checkSrcset(t), |
| 1087 | (t.$content = n('<div class="fancybox-content"></div>') |
| 1088 | .addClass('fancybox-is-hidden') |
| 1089 | .appendTo(t.$slide.addClass('fancybox-slide--image'))), |
| 1090 | !1 !== t.opts.preload && |
| 1091 | t.opts.width && |
| 1092 | t.opts.height && |
| 1093 | t.thumb && |
| 1094 | ((t.width = t.opts.width), |
| 1095 | (t.height = t.opts.height), |
| 1096 | (o = e.createElement('img')), |
| 1097 | (o.onerror = function () { |
| 1098 | n(this).remove(), (t.$ghost = null); |
| 1099 | }), |
| 1100 | (o.onload = function () { |
| 1101 | i.afterLoad(t); |
| 1102 | }), |
| 1103 | (t.$ghost = n(o) |
| 1104 | .addClass('fancybox-image') |
| 1105 | .appendTo(t.$content) |
| 1106 | .attr('src', t.thumb))), |
| 1107 | i.setBigImage(t); |
| 1108 | }, |
| 1109 | checkSrcset: function (e) { |
| 1110 | var n, |
| 1111 | o, |
| 1112 | i, |
| 1113 | a, |
| 1114 | s = e.opts.srcset || e.opts.image.srcset; |
| 1115 | if (s) { |
| 1116 | (i = t.devicePixelRatio || 1), |
| 1117 | (a = t.innerWidth * i), |
| 1118 | (o = s.split(',').map(function (t) { |
| 1119 | var e = {}; |
| 1120 | return ( |
| 1121 | t |
| 1122 | .trim() |
| 1123 | .split(/\s+/) |
| 1124 | .forEach(function (t, n) { |
| 1125 | var o = parseInt( |
| 1126 | t.substring(0, t.length - 1), |
| 1127 | 10 |
| 1128 | ); |
| 1129 | if (0 === n) return (e.url = t); |
| 1130 | o && |
| 1131 | ((e.value = o), |
| 1132 | (e.postfix = t[t.length - 1])); |
| 1133 | }), |
| 1134 | e |
| 1135 | ); |
| 1136 | })), |
| 1137 | o.sort(function (t, e) { |
| 1138 | return t.value - e.value; |
| 1139 | }); |
| 1140 | for (var r = 0; r < o.length; r++) { |
| 1141 | var c = o[r]; |
| 1142 | if ( |
| 1143 | ('w' === c.postfix && c.value >= a) || |
| 1144 | ('x' === c.postfix && c.value >= i) |
| 1145 | ) { |
| 1146 | n = c; |
| 1147 | break; |
| 1148 | } |
| 1149 | } |
| 1150 | !n && o.length && (n = o[o.length - 1]), |
| 1151 | n && |
| 1152 | ((e.src = n.url), |
| 1153 | e.width && |
| 1154 | e.height && |
| 1155 | 'w' == n.postfix && |
| 1156 | ((e.height = (e.width / e.height) * n.value), |
| 1157 | (e.width = n.value)), |
| 1158 | (e.opts.srcset = s)); |
| 1159 | } |
| 1160 | }, |
| 1161 | setBigImage: function (t) { |
| 1162 | var o = this, |
| 1163 | i = e.createElement('img'), |
| 1164 | a = n(i); |
| 1165 | (t.$image = a |
| 1166 | .one('error', function () { |
| 1167 | o.setError(t); |
| 1168 | }) |
| 1169 | .one('load', function () { |
| 1170 | var e; |
| 1171 | t.$ghost || |
| 1172 | (o.resolveImageSlideSize( |
| 1173 | t, |
| 1174 | this.naturalWidth, |
| 1175 | this.naturalHeight |
| 1176 | ), |
| 1177 | o.afterLoad(t)), |
| 1178 | o.isClosing || |
| 1179 | (t.opts.srcset && |
| 1180 | ((e = t.opts.sizes), |
| 1181 | (e && 'auto' !== e) || |
| 1182 | (e = |
| 1183 | (t.width / t.height > 1 && |
| 1184 | s.width() / s.height() > 1 |
| 1185 | ? '100' |
| 1186 | : Math.round( |
| 1187 | (t.width / t.height) * |
| 1188 | 100 |
| 1189 | )) + 'vw'), |
| 1190 | a |
| 1191 | .attr('sizes', e) |
| 1192 | .attr('srcset', t.opts.srcset)), |
| 1193 | t.$ghost && |
| 1194 | setTimeout(function () { |
| 1195 | t.$ghost && |
| 1196 | !o.isClosing && |
| 1197 | t.$ghost.hide(); |
| 1198 | }, Math.min( |
| 1199 | 300, |
| 1200 | Math.max(1e3, t.height / 1600) |
| 1201 | )), |
| 1202 | o.hideLoading(t)); |
| 1203 | }) |
| 1204 | .addClass('fancybox-image') |
| 1205 | .attr('src', t.src) |
| 1206 | .appendTo(t.$content)), |
| 1207 | (i.complete || 'complete' == i.readyState) && |
| 1208 | a.naturalWidth && |
| 1209 | a.naturalHeight |
| 1210 | ? a.trigger('load') |
| 1211 | : i.error && a.trigger('error'); |
| 1212 | }, |
| 1213 | resolveImageSlideSize: function (t, e, n) { |
| 1214 | var o = parseInt(t.opts.width, 10), |
| 1215 | i = parseInt(t.opts.height, 10); |
| 1216 | (t.width = e), |
| 1217 | (t.height = n), |
| 1218 | o > 0 && |
| 1219 | ((t.width = o), (t.height = Math.floor((o * n) / e))), |
| 1220 | i > 0 && |
| 1221 | ((t.width = Math.floor((i * e) / n)), (t.height = i)); |
| 1222 | }, |
| 1223 | setIframe: function (t) { |
| 1224 | var e, |
| 1225 | o = this, |
| 1226 | i = t.opts.iframe, |
| 1227 | a = t.$slide; |
| 1228 | (t.$content = n( |
| 1229 | '<div class="fancybox-content' + |
| 1230 | (i.preload ? ' fancybox-is-hidden' : '') + |
| 1231 | '"></div>' |
| 1232 | ) |
| 1233 | .css(i.css) |
| 1234 | .appendTo(a)), |
| 1235 | a.addClass('fancybox-slide--' + t.contentType), |
| 1236 | (t.$iframe = e = n( |
| 1237 | i.tpl.replace(/\{rnd\}/g, new Date().getTime()) |
| 1238 | ) |
| 1239 | .attr(i.attr) |
| 1240 | .appendTo(t.$content)), |
| 1241 | i.preload |
| 1242 | ? (o.showLoading(t), |
| 1243 | e.on('load.fb error.fb', function (e) { |
| 1244 | (this.isReady = 1), |
| 1245 | t.$slide.trigger('refresh'), |
| 1246 | o.afterLoad(t); |
| 1247 | }), |
| 1248 | a.on('refresh.fb', function () { |
| 1249 | var n, |
| 1250 | o, |
| 1251 | s = t.$content, |
| 1252 | r = i.css.width, |
| 1253 | c = i.css.height; |
| 1254 | if (1 === e[0].isReady) { |
| 1255 | try { |
| 1256 | (n = e.contents()), |
| 1257 | (o = n.find('body')); |
| 1258 | } catch (t) {} |
| 1259 | o && |
| 1260 | o.length && |
| 1261 | o.children().length && |
| 1262 | (a.css('overflow', 'visible'), |
| 1263 | s.css({ |
| 1264 | width: '100%', |
| 1265 | 'max-width': '100%', |
| 1266 | height: '9999px', |
| 1267 | }), |
| 1268 | void 0 === r && |
| 1269 | (r = Math.ceil( |
| 1270 | Math.max( |
| 1271 | o[0].clientWidth, |
| 1272 | o.outerWidth(!0) |
| 1273 | ) |
| 1274 | )), |
| 1275 | s |
| 1276 | .css('width', r || '') |
| 1277 | .css('max-width', ''), |
| 1278 | void 0 === c && |
| 1279 | (c = Math.ceil( |
| 1280 | Math.max( |
| 1281 | o[0].clientHeight, |
| 1282 | o.outerHeight(!0) |
| 1283 | ) |
| 1284 | )), |
| 1285 | s.css('height', c || ''), |
| 1286 | a.css('overflow', 'auto')), |
| 1287 | s.removeClass('fancybox-is-hidden'); |
| 1288 | } |
| 1289 | })) |
| 1290 | : o.afterLoad(t), |
| 1291 | e.attr('src', t.src), |
| 1292 | a.one('onReset', function () { |
| 1293 | try { |
| 1294 | n(this) |
| 1295 | .find('iframe') |
| 1296 | .hide() |
| 1297 | .unbind() |
| 1298 | .attr('src', '//about:blank'); |
| 1299 | } catch (t) {} |
| 1300 | n(this).off('refresh.fb').empty(), |
| 1301 | (t.isLoaded = !1), |
| 1302 | (t.isRevealed = !1); |
| 1303 | }); |
| 1304 | }, |
| 1305 | setContent: function (t, e) { |
| 1306 | var o = this; |
| 1307 | o.isClosing || |
| 1308 | (o.hideLoading(t), |
| 1309 | t.$content && n.fancybox.stop(t.$content), |
| 1310 | t.$slide.empty(), |
| 1311 | l(e) && e.parent().length |
| 1312 | ? ((e.hasClass('fancybox-content') || |
| 1313 | e.parent().hasClass('fancybox-content')) && |
| 1314 | e.parents('.fancybox-slide').trigger('onReset'), |
| 1315 | (t.$placeholder = n('<div>').hide().insertAfter(e)), |
| 1316 | e.css('display', 'inline-block')) |
| 1317 | : t.hasError || |
| 1318 | ('string' === n.type(e) && |
| 1319 | (e = n('<div>').append(n.trim(e)).contents())), |
| 1320 | t.$slide.one('onReset', function () { |
| 1321 | n(this).find('video,audio').trigger('pause'), |
| 1322 | t.$placeholder && |
| 1323 | (t.$placeholder |
| 1324 | .after( |
| 1325 | e.removeClass('fancybox-content').hide() |
| 1326 | ) |
| 1327 | .remove(), |
| 1328 | (t.$placeholder = null)), |
| 1329 | t.$smallBtn && |
| 1330 | (t.$smallBtn.remove(), (t.$smallBtn = null)), |
| 1331 | t.hasError || |
| 1332 | (n(this).empty(), |
| 1333 | (t.isLoaded = !1), |
| 1334 | (t.isRevealed = !1)); |
| 1335 | }), |
| 1336 | n(e).appendTo(t.$slide), |
| 1337 | n(e).is('video,audio') && |
| 1338 | (n(e).addClass('fancybox-video'), |
| 1339 | n(e).wrap('<div></div>'), |
| 1340 | (t.contentType = 'video'), |
| 1341 | (t.opts.width = t.opts.width || n(e).attr('width')), |
| 1342 | (t.opts.height = t.opts.height || n(e).attr('height'))), |
| 1343 | (t.$content = t.$slide |
| 1344 | .children() |
| 1345 | .filter( |
| 1346 | 'div,form,main,video,audio,article,.fancybox-content' |
| 1347 | ) |
| 1348 | .first()), |
| 1349 | t.$content.siblings().hide(), |
| 1350 | t.$content.length || |
| 1351 | (t.$content = t.$slide |
| 1352 | .wrapInner('<div></div>') |
| 1353 | .children() |
| 1354 | .first()), |
| 1355 | t.$content.addClass('fancybox-content'), |
| 1356 | t.$slide.addClass('fancybox-slide--' + t.contentType), |
| 1357 | o.afterLoad(t)); |
| 1358 | }, |
| 1359 | setError: function (t) { |
| 1360 | (t.hasError = !0), |
| 1361 | t.$slide |
| 1362 | .trigger('onReset') |
| 1363 | .removeClass('fancybox-slide--' + t.contentType) |
| 1364 | .addClass('fancybox-slide--error'), |
| 1365 | (t.contentType = 'html'), |
| 1366 | this.setContent(t, this.translate(t, t.opts.errorTpl)), |
| 1367 | t.pos === this.currPos && (this.isAnimating = !1); |
| 1368 | }, |
| 1369 | showLoading: function (t) { |
| 1370 | var e = this; |
| 1371 | (t = t || e.current) && |
| 1372 | !t.$spinner && |
| 1373 | (t.$spinner = n(e.translate(e, e.opts.spinnerTpl)) |
| 1374 | .appendTo(t.$slide) |
| 1375 | .hide() |
| 1376 | .fadeIn('fast')); |
| 1377 | }, |
| 1378 | hideLoading: function (t) { |
| 1379 | var e = this; |
| 1380 | (t = t || e.current) && |
| 1381 | t.$spinner && |
| 1382 | (t.$spinner.stop().remove(), delete t.$spinner); |
| 1383 | }, |
| 1384 | afterLoad: function (t) { |
| 1385 | var e = this; |
| 1386 | e.isClosing || |
| 1387 | ((t.isLoading = !1), |
| 1388 | (t.isLoaded = !0), |
| 1389 | e.trigger('afterLoad', t), |
| 1390 | e.hideLoading(t), |
| 1391 | !t.opts.smallBtn || |
| 1392 | (t.$smallBtn && t.$smallBtn.length) || |
| 1393 | (t.$smallBtn = n( |
| 1394 | e.translate(t, t.opts.btnTpl.smallBtn) |
| 1395 | ).appendTo(t.$content)), |
| 1396 | t.opts.protect && |
| 1397 | t.$content && |
| 1398 | !t.hasError && |
| 1399 | (t.$content.on('contextmenu.fb', function (t) { |
| 1400 | return 2 == t.button && t.preventDefault(), !0; |
| 1401 | }), |
| 1402 | 'image' === t.type && |
| 1403 | n( |
| 1404 | '<div class="fancybox-spaceball"></div>' |
| 1405 | ).appendTo(t.$content)), |
| 1406 | e.adjustCaption(t), |
| 1407 | e.adjustLayout(t), |
| 1408 | t.pos === e.currPos && e.updateCursor(), |
| 1409 | e.revealContent(t)); |
| 1410 | }, |
| 1411 | adjustCaption: function (t) { |
| 1412 | var e, |
| 1413 | n = this, |
| 1414 | o = t || n.current, |
| 1415 | i = o.opts.caption, |
| 1416 | a = o.opts.preventCaptionOverlap, |
| 1417 | s = n.$refs.caption, |
| 1418 | r = !1; |
| 1419 | s.toggleClass('fancybox-caption--separate', a), |
| 1420 | a && |
| 1421 | i && |
| 1422 | i.length && |
| 1423 | false && |
| 1424 | (o.pos !== n.currPos |
| 1425 | ? ((e = s.clone().appendTo(s.parent())), |
| 1426 | (r = e.outerHeight(!0)), |
| 1427 | e.empty().remove()) |
| 1428 | : n.$caption && (r = n.$caption.outerHeight(!0)), |
| 1429 | o.$slide.css('padding-bottom', r || '')); |
| 1430 | }, |
| 1431 | adjustLayout: function (t) { |
| 1432 | var e, |
| 1433 | n, |
| 1434 | o, |
| 1435 | i, |
| 1436 | a = this, |
| 1437 | s = t || a.current; |
| 1438 | s.isLoaded && |
| 1439 | !0 !== s.opts.disableLayoutFix && |
| 1440 | (s.$content.css('margin-bottom', ''), |
| 1441 | s.$content.outerHeight() > s.$slide.height() + 0.5 && |
| 1442 | ((o = s.$slide[0].style['padding-bottom']), |
| 1443 | (i = s.$slide.css('padding-bottom')), |
| 1444 | parseFloat(i) > 0 && |
| 1445 | ((e = s.$slide[0].scrollHeight), |
| 1446 | s.$slide.css('padding-bottom', 0), |
| 1447 | Math.abs(e - s.$slide[0].scrollHeight) < 1 && |
| 1448 | (n = i), |
| 1449 | s.$slide.css('padding-bottom', o))), |
| 1450 | s.$content.css('margin-bottom', n)); |
| 1451 | }, |
| 1452 | revealContent: function (t) { |
| 1453 | var e, |
| 1454 | o, |
| 1455 | i, |
| 1456 | a, |
| 1457 | s = this, |
| 1458 | r = t.$slide, |
| 1459 | c = !1, |
| 1460 | l = !1, |
| 1461 | d = s.isMoved(t), |
| 1462 | u = t.isRevealed; |
| 1463 | return ( |
| 1464 | (t.isRevealed = !0), |
| 1465 | (e = |
| 1466 | t.opts[ |
| 1467 | s.firstRun ? 'animationEffect' : 'transitionEffect' |
| 1468 | ]), |
| 1469 | (i = |
| 1470 | t.opts[ |
| 1471 | s.firstRun |
| 1472 | ? 'animationDuration' |
| 1473 | : 'transitionDuration' |
| 1474 | ]), |
| 1475 | (i = parseInt( |
| 1476 | void 0 === t.forcedDuration ? i : t.forcedDuration, |
| 1477 | 10 |
| 1478 | )), |
| 1479 | (!d && t.pos === s.currPos && i) || (e = !1), |
| 1480 | 'zoom' === e && |
| 1481 | (t.pos === s.currPos && |
| 1482 | i && |
| 1483 | 'image' === t.type && |
| 1484 | !t.hasError && |
| 1485 | (l = s.getThumbPos(t)) |
| 1486 | ? (c = s.getFitPos(t)) |
| 1487 | : (e = 'fade')), |
| 1488 | 'zoom' === e |
| 1489 | ? ((s.isAnimating = !0), |
| 1490 | (c.scaleX = c.width / l.width), |
| 1491 | (c.scaleY = c.height / l.height), |
| 1492 | (a = t.opts.zoomOpacity), |
| 1493 | 'auto' == a && |
| 1494 | (a = |
| 1495 | Math.abs( |
| 1496 | t.width / t.height - l.width / l.height |
| 1497 | ) > 0.1), |
| 1498 | a && ((l.opacity = 0.1), (c.opacity = 1)), |
| 1499 | n.fancybox.setTranslate( |
| 1500 | t.$content.removeClass('fancybox-is-hidden'), |
| 1501 | l |
| 1502 | ), |
| 1503 | p(t.$content), |
| 1504 | void n.fancybox.animate( |
| 1505 | t.$content, |
| 1506 | c, |
| 1507 | i, |
| 1508 | function () { |
| 1509 | (s.isAnimating = !1), s.complete(); |
| 1510 | } |
| 1511 | )) |
| 1512 | : (s.updateSlide(t), |
| 1513 | e |
| 1514 | ? (n.fancybox.stop(r), |
| 1515 | (o = |
| 1516 | 'fancybox-slide--' + |
| 1517 | (t.pos >= s.prevPos |
| 1518 | ? 'next' |
| 1519 | : 'previous') + |
| 1520 | ' fancybox-animated fancybox-fx-' + |
| 1521 | e), |
| 1522 | r |
| 1523 | .addClass(o) |
| 1524 | .removeClass('fancybox-slide--current'), |
| 1525 | t.$content.removeClass('fancybox-is-hidden'), |
| 1526 | p(r), |
| 1527 | 'image' !== t.type && |
| 1528 | t.$content.hide().show(0), |
| 1529 | void n.fancybox.animate( |
| 1530 | r, |
| 1531 | 'fancybox-slide--current', |
| 1532 | i, |
| 1533 | function () { |
| 1534 | r.removeClass(o).css({ |
| 1535 | transform: '', |
| 1536 | opacity: '', |
| 1537 | }), |
| 1538 | t.pos === s.currPos && |
| 1539 | s.complete(); |
| 1540 | }, |
| 1541 | !0 |
| 1542 | )) |
| 1543 | : (t.$content.removeClass('fancybox-is-hidden'), |
| 1544 | u || |
| 1545 | !d || |
| 1546 | 'image' !== t.type || |
| 1547 | t.hasError || |
| 1548 | t.$content.hide().fadeIn('fast'), |
| 1549 | void (t.pos === s.currPos && s.complete()))) |
| 1550 | ); |
| 1551 | }, |
| 1552 | getThumbPos: function (t) { |
| 1553 | var e, |
| 1554 | o, |
| 1555 | i, |
| 1556 | a, |
| 1557 | s, |
| 1558 | r = !1, |
| 1559 | c = t.$thumb; |
| 1560 | return ( |
| 1561 | !(!c || !g(c[0])) && |
| 1562 | ((e = n.fancybox.getTranslate(c)), |
| 1563 | (o = parseFloat(c.css('border-top-width') || 0)), |
| 1564 | (i = parseFloat(c.css('border-right-width') || 0)), |
| 1565 | (a = parseFloat(c.css('border-bottom-width') || 0)), |
| 1566 | (s = parseFloat(c.css('border-left-width') || 0)), |
| 1567 | (r = { |
| 1568 | top: e.top + o, |
| 1569 | left: e.left + s, |
| 1570 | width: e.width - i - s, |
| 1571 | height: e.height - o - a, |
| 1572 | scaleX: 1, |
| 1573 | scaleY: 1, |
| 1574 | }), |
| 1575 | e.width > 0 && e.height > 0 && r) |
| 1576 | ); |
| 1577 | }, |
| 1578 | complete: function () { |
| 1579 | var t, |
| 1580 | e = this, |
| 1581 | o = e.current, |
| 1582 | i = {}; |
| 1583 | !e.isMoved() && |
| 1584 | o.isLoaded && |
| 1585 | (o.isComplete || |
| 1586 | ((o.isComplete = !0), |
| 1587 | o.$slide.siblings().trigger('onReset'), |
| 1588 | e.preload('inline'), |
| 1589 | p(o.$slide), |
| 1590 | o.$slide.addClass('fancybox-slide--complete'), |
| 1591 | n.each(e.slides, function (t, o) { |
| 1592 | o.pos >= e.currPos - 1 && o.pos <= e.currPos + 1 |
| 1593 | ? (i[o.pos] = o) |
| 1594 | : o && |
| 1595 | (n.fancybox.stop(o.$slide), |
| 1596 | o.$slide.off().remove()); |
| 1597 | }), |
| 1598 | (e.slides = i)), |
| 1599 | (e.isAnimating = !1), |
| 1600 | e.updateCursor(), |
| 1601 | e.trigger('afterShow'), |
| 1602 | o.opts.video.autoStart && |
| 1603 | o.$slide |
| 1604 | .find('video,audio') |
| 1605 | .filter(':visible:first') |
| 1606 | .trigger('play') |
| 1607 | .one('ended', function () { |
| 1608 | Document.exitFullscreen |
| 1609 | ? Document.exitFullscreen() |
| 1610 | : this.webkitExitFullscreen && |
| 1611 | this.webkitExitFullscreen(), |
| 1612 | e.next(); |
| 1613 | }), |
| 1614 | o.opts.autoFocus && |
| 1615 | 'html' === o.contentType && |
| 1616 | ((t = o.$content.find( |
| 1617 | 'input[autofocus]:enabled:visible:first' |
| 1618 | )), |
| 1619 | t.length ? t.trigger('focus') : e.focus(null, !0)), |
| 1620 | o.$slide.scrollTop(0).scrollLeft(0)); |
| 1621 | }, |
| 1622 | preload: function (t) { |
| 1623 | var e, |
| 1624 | n, |
| 1625 | o = this; |
| 1626 | o.group.length < 2 || |
| 1627 | ((n = o.slides[o.currPos + 1]), |
| 1628 | (e = o.slides[o.currPos - 1]), |
| 1629 | e && e.type === t && o.loadSlide(e), |
| 1630 | n && n.type === t && o.loadSlide(n)); |
| 1631 | }, |
| 1632 | focus: function (t, o) { |
| 1633 | var i, |
| 1634 | a, |
| 1635 | s = this, |
| 1636 | r = [ |
| 1637 | 'a[href]', |
| 1638 | 'area[href]', |
| 1639 | 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', |
| 1640 | 'select:not([disabled]):not([aria-hidden])', |
| 1641 | 'textarea:not([disabled]):not([aria-hidden])', |
| 1642 | 'button:not([disabled]):not([aria-hidden])', |
| 1643 | 'iframe', |
| 1644 | 'object', |
| 1645 | 'embed', |
| 1646 | 'video', |
| 1647 | 'audio', |
| 1648 | '[contenteditable]', |
| 1649 | '[tabindex]:not([tabindex^="-"])', |
| 1650 | ].join(','); |
| 1651 | s.isClosing || |
| 1652 | ((i = |
| 1653 | !t && s.current && s.current.isComplete |
| 1654 | ? s.current.$slide.find( |
| 1655 | '*:visible' + |
| 1656 | (o ? ':not(.fancybox-close-small)' : '') |
| 1657 | ) |
| 1658 | : s.$refs.container.find('*:visible')), |
| 1659 | (i = i.filter(r).filter(function () { |
| 1660 | return ( |
| 1661 | 'hidden' !== n(this).css('visibility') && |
| 1662 | !n(this).hasClass('disabled') |
| 1663 | ); |
| 1664 | })), |
| 1665 | i.length |
| 1666 | ? ((a = i.index(e.activeElement)), |
| 1667 | t && t.shiftKey |
| 1668 | ? (a < 0 || 0 == a) && |
| 1669 | (t.preventDefault(), |
| 1670 | i.eq(i.length - 1).trigger('focus')) |
| 1671 | : (a < 0 || a == i.length - 1) && |
| 1672 | (t && t.preventDefault(), |
| 1673 | i.eq(0).trigger('focus'))) |
| 1674 | : s.$refs.container.trigger('focus')); |
| 1675 | }, |
| 1676 | activate: function () { |
| 1677 | var t = this; |
| 1678 | n('.fancybox-container').each(function () { |
| 1679 | var e = n(this).data('FancyBox'); |
| 1680 | e && |
| 1681 | e.id !== t.id && |
| 1682 | !e.isClosing && |
| 1683 | (e.trigger('onDeactivate'), |
| 1684 | e.removeEvents(), |
| 1685 | (e.isVisible = !1)); |
| 1686 | }), |
| 1687 | (t.isVisible = !0), |
| 1688 | (t.current || t.isIdle) && (t.update(), t.updateControls()), |
| 1689 | t.trigger('onActivate'), |
| 1690 | t.addEvents(); |
| 1691 | }, |
| 1692 | close: function (t, e) { |
| 1693 | var o, |
| 1694 | i, |
| 1695 | a, |
| 1696 | s, |
| 1697 | r, |
| 1698 | c, |
| 1699 | l, |
| 1700 | u = this, |
| 1701 | f = u.current, |
| 1702 | h = function () { |
| 1703 | u.cleanUp(t); |
| 1704 | }; |
| 1705 | return ( |
| 1706 | !u.isClosing && |
| 1707 | ((u.isClosing = !0), |
| 1708 | !1 === u.trigger('beforeClose', t) |
| 1709 | ? ((u.isClosing = !1), |
| 1710 | d(function () { |
| 1711 | u.update(); |
| 1712 | }), |
| 1713 | !1) |
| 1714 | : (u.removeEvents(), |
| 1715 | (a = f.$content), |
| 1716 | (o = f.opts.animationEffect), |
| 1717 | (i = n.isNumeric(e) |
| 1718 | ? e |
| 1719 | : o |
| 1720 | ? f.opts.animationDuration |
| 1721 | : 0), |
| 1722 | f.$slide.removeClass( |
| 1723 | 'fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated' |
| 1724 | ), |
| 1725 | !0 !== t ? n.fancybox.stop(f.$slide) : (o = !1), |
| 1726 | f.$slide.siblings().trigger('onReset').remove(), |
| 1727 | i && |
| 1728 | u.$refs.container |
| 1729 | .removeClass('fancybox-is-open') |
| 1730 | .addClass('fancybox-is-closing') |
| 1731 | .css('transition-duration', i + 'ms'), |
| 1732 | u.hideLoading(f), |
| 1733 | u.hideControls(!0), |
| 1734 | u.updateCursor(), |
| 1735 | 'zoom' !== o || |
| 1736 | (a && |
| 1737 | i && |
| 1738 | 'image' === f.type && |
| 1739 | !u.isMoved() && |
| 1740 | !f.hasError && |
| 1741 | (l = u.getThumbPos(f))) || |
| 1742 | (o = 'fade'), |
| 1743 | 'zoom' === o |
| 1744 | ? (n.fancybox.stop(a), |
| 1745 | (s = n.fancybox.getTranslate(a)), |
| 1746 | (c = { |
| 1747 | top: s.top, |
| 1748 | left: s.left, |
| 1749 | scaleX: s.width / l.width, |
| 1750 | scaleY: s.height / l.height, |
| 1751 | width: l.width, |
| 1752 | height: l.height, |
| 1753 | }), |
| 1754 | (r = f.opts.zoomOpacity), |
| 1755 | 'auto' == r && |
| 1756 | (r = |
| 1757 | Math.abs( |
| 1758 | f.width / f.height - |
| 1759 | l.width / l.height |
| 1760 | ) > 0.1), |
| 1761 | r && (l.opacity = 0), |
| 1762 | n.fancybox.setTranslate(a, c), |
| 1763 | p(a), |
| 1764 | n.fancybox.animate(a, l, i, h), |
| 1765 | !0) |
| 1766 | : (o && i |
| 1767 | ? n.fancybox.animate( |
| 1768 | f.$slide |
| 1769 | .addClass( |
| 1770 | 'fancybox-slide--previous' |
| 1771 | ) |
| 1772 | .removeClass( |
| 1773 | 'fancybox-slide--current' |
| 1774 | ), |
| 1775 | 'fancybox-animated fancybox-fx-' + |
| 1776 | o, |
| 1777 | i, |
| 1778 | h |
| 1779 | ) |
| 1780 | : !0 === t |
| 1781 | ? setTimeout(h, i) |
| 1782 | : h(), |
| 1783 | !0))) |
| 1784 | ); |
| 1785 | }, |
| 1786 | cleanUp: function (e) { |
| 1787 | var o, |
| 1788 | i, |
| 1789 | a, |
| 1790 | s = this, |
| 1791 | r = s.current.opts.$orig; |
| 1792 | s.current.$slide.trigger('onReset'), |
| 1793 | s.$refs.container.empty().remove(), |
| 1794 | s.trigger('afterClose', e), |
| 1795 | s.current.opts.backFocus && |
| 1796 | ((r && r.length && r.is(':visible')) || |
| 1797 | (r = s.$trigger), |
| 1798 | r && |
| 1799 | r.length && |
| 1800 | ((i = t.scrollX), |
| 1801 | (a = t.scrollY), |
| 1802 | r.trigger('focus'), |
| 1803 | n('html, body').scrollTop(a).scrollLeft(i))), |
| 1804 | (s.current = null), |
| 1805 | (o = n.fancybox.getInstance()), |
| 1806 | o |
| 1807 | ? o.activate() |
| 1808 | : (n('body').removeClass( |
| 1809 | 'fancybox-active compensate-for-scrollbar' |
| 1810 | ), |
| 1811 | n('#fancybox-style-noscroll').remove()); |
| 1812 | }, |
| 1813 | trigger: function (t, e) { |
| 1814 | var o, |
| 1815 | i = Array.prototype.slice.call(arguments, 1), |
| 1816 | a = this, |
| 1817 | s = e && e.opts ? e : a.current; |
| 1818 | if ( |
| 1819 | (s ? i.unshift(s) : (s = a), |
| 1820 | i.unshift(a), |
| 1821 | n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, i)), |
| 1822 | !1 === o) |
| 1823 | ) |
| 1824 | return o; |
| 1825 | 'afterClose' !== t && a.$refs |
| 1826 | ? a.$refs.container.trigger(t + '.fb', i) |
| 1827 | : r.trigger(t + '.fb', i); |
| 1828 | }, |
| 1829 | updateControls: function () { |
| 1830 | var t = this, |
| 1831 | o = t.current, |
| 1832 | i = o.index, |
| 1833 | a = t.$refs.container, |
| 1834 | s = t.$refs.caption, |
| 1835 | r = o.opts.caption; |
| 1836 | o.$slide.trigger('refresh'), |
| 1837 | t.$caption = null, |
| 1838 | t.hasHiddenControls || t.isIdle || t.showControls(), |
| 1839 | a.find('[data-fancybox-count]').html(t.group.length), |
| 1840 | a.find('[data-fancybox-index]').html(i + 1), |
| 1841 | a |
| 1842 | .find('[data-fancybox-prev]') |
| 1843 | .prop('disabled', !o.opts.loop && i <= 0), |
| 1844 | a |
| 1845 | .find('[data-fancybox-next]') |
| 1846 | .prop( |
| 1847 | 'disabled', |
| 1848 | !o.opts.loop && i >= t.group.length - 1 |
| 1849 | ), |
| 1850 | 'image' === o.type |
| 1851 | ? a |
| 1852 | .find('[data-fancybox-zoom]') |
| 1853 | .show() |
| 1854 | .end() |
| 1855 | .find('[data-fancybox-download]') |
| 1856 | .attr('href', o.opts.image.src || o.src) |
| 1857 | .show() |
| 1858 | : o.opts.toolbar && |
| 1859 | a |
| 1860 | .find( |
| 1861 | '[data-fancybox-download],[data-fancybox-zoom]' |
| 1862 | ) |
| 1863 | .hide(), |
| 1864 | n(e.activeElement).is(':hidden,[disabled]') && |
| 1865 | t.$refs.container.trigger('focus'); |
| 1866 | }, |
| 1867 | hideControls: function (t) { |
| 1868 | var e = this, |
| 1869 | n = ['infobar', 'toolbar', 'nav']; |
| 1870 | (!t && e.current.opts.preventCaptionOverlap) || |
| 1871 | n.push('caption'), |
| 1872 | this.$refs.container.removeClass( |
| 1873 | n |
| 1874 | .map(function (t) { |
| 1875 | return 'fancybox-show-' + t; |
| 1876 | }) |
| 1877 | .join(' ') |
| 1878 | ), |
| 1879 | (this.hasHiddenControls = !0); |
| 1880 | }, |
| 1881 | showControls: function () { |
| 1882 | var t = this, |
| 1883 | e = t.current ? t.current.opts : t.opts, |
| 1884 | n = t.$refs.container; |
| 1885 | (t.hasHiddenControls = !1), |
| 1886 | (t.idleSecondsCounter = 0), |
| 1887 | n |
| 1888 | .toggleClass( |
| 1889 | 'fancybox-show-toolbar', |
| 1890 | !(!e.toolbar || !e.buttons) |
| 1891 | ) |
| 1892 | .toggleClass( |
| 1893 | 'fancybox-show-infobar', |
| 1894 | !!(e.infobar && t.group.length > 1) |
| 1895 | ) |
| 1896 | .toggleClass('fancybox-show-caption', !!t.$caption) |
| 1897 | .toggleClass( |
| 1898 | 'fancybox-show-nav', |
| 1899 | !!(e.arrows && t.group.length > 1) |
| 1900 | ) |
| 1901 | .toggleClass('fancybox-is-modal', !!e.modal); |
| 1902 | }, |
| 1903 | toggleControls: function () { |
| 1904 | this.hasHiddenControls |
| 1905 | ? this.showControls() |
| 1906 | : this.hideControls(); |
| 1907 | }, |
| 1908 | }), |
| 1909 | (n.fancybox = { |
| 1910 | version: '3.5.7', |
| 1911 | defaults: a, |
| 1912 | getInstance: function (t) { |
| 1913 | var e = n( |
| 1914 | '.fancybox-container:not(".fancybox-is-closing"):last' |
| 1915 | ).data('FancyBox'), |
| 1916 | o = Array.prototype.slice.call(arguments, 1); |
| 1917 | return ( |
| 1918 | e instanceof b && |
| 1919 | ('string' === n.type(t) |
| 1920 | ? e[t].apply(e, o) |
| 1921 | : 'function' === n.type(t) && t.apply(e, o), |
| 1922 | e) |
| 1923 | ); |
| 1924 | }, |
| 1925 | open: function (t, e, n) { |
| 1926 | return new b(t, e, n); |
| 1927 | }, |
| 1928 | close: function (t) { |
| 1929 | var e = this.getInstance(); |
| 1930 | e && (e.close(), !0 === t && this.close(t)); |
| 1931 | }, |
| 1932 | destroy: function () { |
| 1933 | this.close(!0), r.add('body').off('click.fb-start', '**'); |
| 1934 | }, |
| 1935 | isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( |
| 1936 | navigator.userAgent |
| 1937 | ), |
| 1938 | use3d: (function () { |
| 1939 | var n = e.createElement('div'); |
| 1940 | return ( |
| 1941 | t.getComputedStyle && |
| 1942 | t.getComputedStyle(n) && |
| 1943 | t.getComputedStyle(n).getPropertyValue('transform') && |
| 1944 | !(e.documentMode && e.documentMode < 11) |
| 1945 | ); |
| 1946 | })(), |
| 1947 | getTranslate: function (t) { |
| 1948 | var e; |
| 1949 | return ( |
| 1950 | !(!t || !t.length) && |
| 1951 | ((e = t[0].getBoundingClientRect()), |
| 1952 | { |
| 1953 | top: e.top || 0, |
| 1954 | left: e.left || 0, |
| 1955 | width: e.width, |
| 1956 | height: e.height, |
| 1957 | opacity: parseFloat(t.css('opacity')), |
| 1958 | }) |
| 1959 | ); |
| 1960 | }, |
| 1961 | setTranslate: function (t, e) { |
| 1962 | var n = '', |
| 1963 | o = {}; |
| 1964 | if (t && e) |
| 1965 | return ( |
| 1966 | (void 0 === e.left && void 0 === e.top) || |
| 1967 | ((n = |
| 1968 | (void 0 === e.left |
| 1969 | ? t.position().left |
| 1970 | : e.left) + |
| 1971 | 'px, ' + |
| 1972 | (void 0 === e.top |
| 1973 | ? t.position().top |
| 1974 | : e.top) + |
| 1975 | 'px'), |
| 1976 | (n = this.use3d |
| 1977 | ? 'translate3d(' + n + ', 0px)' |
| 1978 | : 'translate(' + n + ')')), |
| 1979 | void 0 !== e.scaleX && void 0 !== e.scaleY |
| 1980 | ? (n += |
| 1981 | ' scale(' + |
| 1982 | e.scaleX + |
| 1983 | ', ' + |
| 1984 | e.scaleY + |
| 1985 | ')') |
| 1986 | : void 0 !== e.scaleX && |
| 1987 | (n += ' scaleX(' + e.scaleX + ')'), |
| 1988 | n.length && (o.transform = n), |
| 1989 | void 0 !== e.opacity && (o.opacity = e.opacity), |
| 1990 | void 0 !== e.width && (o.width = e.width), |
| 1991 | void 0 !== e.height && (o.height = e.height), |
| 1992 | t.css(o) |
| 1993 | ); |
| 1994 | }, |
| 1995 | animate: function (t, e, o, i, a) { |
| 1996 | var s, |
| 1997 | r = this; |
| 1998 | n.isFunction(o) && ((i = o), (o = null)), |
| 1999 | r.stop(t), |
| 2000 | (s = r.getTranslate(t)), |
| 2001 | t.on(f, function (c) { |
| 2002 | (!c || |
| 2003 | !c.originalEvent || |
| 2004 | (t.is(c.originalEvent.target) && |
| 2005 | 'z-index' != |
| 2006 | c.originalEvent.propertyName)) && |
| 2007 | (r.stop(t), |
| 2008 | n.isNumeric(o) && |
| 2009 | t.css('transition-duration', ''), |
| 2010 | n.isPlainObject(e) |
| 2011 | ? void 0 !== e.scaleX && |
| 2012 | void 0 !== e.scaleY && |
| 2013 | r.setTranslate(t, { |
| 2014 | top: e.top, |
| 2015 | left: e.left, |
| 2016 | width: s.width * e.scaleX, |
| 2017 | height: s.height * e.scaleY, |
| 2018 | scaleX: 1, |
| 2019 | scaleY: 1, |
| 2020 | }) |
| 2021 | : !0 !== a && t.removeClass(e), |
| 2022 | n.isFunction(i) && i(c)); |
| 2023 | }), |
| 2024 | n.isNumeric(o) && |
| 2025 | t.css('transition-duration', o + 'ms'), |
| 2026 | n.isPlainObject(e) |
| 2027 | ? (void 0 !== e.scaleX && |
| 2028 | void 0 !== e.scaleY && |
| 2029 | (delete e.width, |
| 2030 | delete e.height, |
| 2031 | t |
| 2032 | .parent() |
| 2033 | .hasClass('fancybox-slide--image') && |
| 2034 | t |
| 2035 | .parent() |
| 2036 | .addClass('fancybox-is-scaling')), |
| 2037 | n.fancybox.setTranslate(t, e)) |
| 2038 | : t.addClass(e), |
| 2039 | t.data( |
| 2040 | 'timer', |
| 2041 | setTimeout(function () { |
| 2042 | t.trigger(f); |
| 2043 | }, o + 33) |
| 2044 | ); |
| 2045 | }, |
| 2046 | stop: function (t, e) { |
| 2047 | t && |
| 2048 | t.length && |
| 2049 | (clearTimeout(t.data('timer')), |
| 2050 | e && t.trigger(f), |
| 2051 | t.off(f).css('transition-duration', ''), |
| 2052 | t.parent().removeClass('fancybox-is-scaling')); |
| 2053 | }, |
| 2054 | }), |
| 2055 | (n.fn.fancybox = function (t) { |
| 2056 | var e; |
| 2057 | return ( |
| 2058 | (t = t || {}), |
| 2059 | (e = t.selector || !1), |
| 2060 | e |
| 2061 | ? n('body') |
| 2062 | .off('click.fb-start', e) |
| 2063 | .on('click.fb-start', e, { options: t }, i) |
| 2064 | : this.off('click.fb-start').on( |
| 2065 | 'click.fb-start', |
| 2066 | { items: this, options: t }, |
| 2067 | i |
| 2068 | ), |
| 2069 | this |
| 2070 | ); |
| 2071 | }), |
| 2072 | r.on('click.fb-start', '[data-fancybox]', i), |
| 2073 | r.on('click.fb-start', '[data-fancybox-trigger]', function (t) { |
| 2074 | n( |
| 2075 | '[data-fancybox="' + |
| 2076 | n(this).attr('data-fancybox-trigger') + |
| 2077 | '"]' |
| 2078 | ) |
| 2079 | .eq(n(this).attr('data-fancybox-index') || 0) |
| 2080 | .trigger('click.fb-start', { $trigger: n(this) }); |
| 2081 | }), |
| 2082 | (function () { |
| 2083 | var t = null; |
| 2084 | r.on( |
| 2085 | 'mousedown mouseup focus blur', |
| 2086 | '.fancybox-button', |
| 2087 | function (e) { |
| 2088 | switch (e.type) { |
| 2089 | case 'mousedown': |
| 2090 | t = n(this); |
| 2091 | break; |
| 2092 | case 'mouseup': |
| 2093 | t = null; |
| 2094 | break; |
| 2095 | case 'focusin': |
| 2096 | n('.fancybox-button').removeClass( |
| 2097 | 'fancybox-focus' |
| 2098 | ), |
| 2099 | n(this).is(t) || |
| 2100 | n(this).is('[disabled]') || |
| 2101 | n(this).addClass('fancybox-focus'); |
| 2102 | break; |
| 2103 | case 'focusout': |
| 2104 | n('.fancybox-button').removeClass( |
| 2105 | 'fancybox-focus' |
| 2106 | ); |
| 2107 | } |
| 2108 | } |
| 2109 | ); |
| 2110 | })(); |
| 2111 | } |
| 2112 | })(window, document, jQuery), |
| 2113 | (function (t) { |
| 2114 | 'use strict'; |
| 2115 | var e = { |
| 2116 | youtube: { |
| 2117 | matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i, |
| 2118 | params: { |
| 2119 | autoplay: 1, |
| 2120 | autohide: 1, |
| 2121 | fs: 1, |
| 2122 | rel: 0, |
| 2123 | hd: 1, |
| 2124 | wmode: 'transparent', |
| 2125 | enablejsapi: 1, |
| 2126 | html5: 1, |
| 2127 | }, |
| 2128 | paramPlace: 8, |
| 2129 | type: 'iframe', |
| 2130 | url: 'https://www.youtube-nocookie.com/embed/$4', |
| 2131 | thumb: 'https://img.youtube.com/vi/$4/hqdefault.jpg', |
| 2132 | }, |
| 2133 | vimeo: { |
| 2134 | matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/, |
| 2135 | params: { |
| 2136 | autoplay: 1, |
| 2137 | hd: 1, |
| 2138 | show_title: 1, |
| 2139 | show_byline: 1, |
| 2140 | show_portrait: 0, |
| 2141 | fullscreen: 1, |
| 2142 | }, |
| 2143 | paramPlace: 3, |
| 2144 | type: 'iframe', |
| 2145 | url: '//player.vimeo.com/video/$2', |
| 2146 | }, |
| 2147 | instagram: { |
| 2148 | matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, |
| 2149 | type: 'image', |
| 2150 | url: '//$1/p/$2/media/?size=l', |
| 2151 | }, |
| 2152 | gmap_place: { |
| 2153 | matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i, |
| 2154 | type: 'iframe', |
| 2155 | url: function (t) { |
| 2156 | return ( |
| 2157 | '//maps.google.' + |
| 2158 | t[2] + |
| 2159 | '/?ll=' + |
| 2160 | (t[9] |
| 2161 | ? t[9] + |
| 2162 | '&z=' + |
| 2163 | Math.floor(t[10]) + |
| 2164 | (t[12] ? t[12].replace(/^\//, '&') : '') |
| 2165 | : t[12] + '' |
| 2166 | ).replace(/\?/, '&') + |
| 2167 | '&output=' + |
| 2168 | (t[12] && t[12].indexOf('layer=c') > 0 |
| 2169 | ? 'svembed' |
| 2170 | : 'embed') |
| 2171 | ); |
| 2172 | }, |
| 2173 | }, |
| 2174 | gmap_search: { |
| 2175 | matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i, |
| 2176 | type: 'iframe', |
| 2177 | url: function (t) { |
| 2178 | return ( |
| 2179 | '//maps.google.' + |
| 2180 | t[2] + |
| 2181 | '/maps?q=' + |
| 2182 | t[5].replace('query=', 'q=').replace('api=1', '') + |
| 2183 | '&output=embed' |
| 2184 | ); |
| 2185 | }, |
| 2186 | }, |
| 2187 | }, |
| 2188 | n = function (e, n, o) { |
| 2189 | if (e) |
| 2190 | return ( |
| 2191 | (o = o || ''), |
| 2192 | 'object' === t.type(o) && (o = t.param(o, !0)), |
| 2193 | t.each(n, function (t, n) { |
| 2194 | e = e.replace('$' + t, n || ''); |
| 2195 | }), |
| 2196 | o.length && (e += (e.indexOf('?') > 0 ? '&' : '?') + o), |
| 2197 | e |
| 2198 | ); |
| 2199 | }; |
| 2200 | t(document).on('objectNeedsType.fb', function (o, i, a) { |
| 2201 | var s, |
| 2202 | r, |
| 2203 | c, |
| 2204 | l, |
| 2205 | d, |
| 2206 | u, |
| 2207 | f, |
| 2208 | p = a.src || '', |
| 2209 | h = !1; |
| 2210 | (s = t.extend(!0, {}, e, a.opts.media)), |
| 2211 | t.each(s, function (e, o) { |
| 2212 | if ((c = p.match(o.matcher))) { |
| 2213 | if ( |
| 2214 | ((h = o.type), |
| 2215 | (f = e), |
| 2216 | (u = {}), |
| 2217 | o.paramPlace && c[o.paramPlace]) |
| 2218 | ) { |
| 2219 | (d = c[o.paramPlace]), |
| 2220 | '?' == d[0] && (d = d.substring(1)), |
| 2221 | (d = d.split('&')); |
| 2222 | for (var i = 0; i < d.length; ++i) { |
| 2223 | var s = d[i].split('=', 2); |
| 2224 | 2 == s.length && |
| 2225 | (u[s[0]] = decodeURIComponent( |
| 2226 | s[1].replace(/\+/g, ' ') |
| 2227 | )); |
| 2228 | } |
| 2229 | } |
| 2230 | return ( |
| 2231 | (l = t.extend(!0, {}, o.params, a.opts[e], u)), |
| 2232 | (p = |
| 2233 | 'function' === t.type(o.url) |
| 2234 | ? o.url.call(this, c, l, a) |
| 2235 | : n(o.url, c, l)), |
| 2236 | (r = |
| 2237 | 'function' === t.type(o.thumb) |
| 2238 | ? o.thumb.call(this, c, l, a) |
| 2239 | : n(o.thumb, c)), |
| 2240 | 'youtube' === e |
| 2241 | ? (p = p.replace( |
| 2242 | /&t=((\d+)m)?(\d+)s/, |
| 2243 | function (t, e, n, o) { |
| 2244 | return ( |
| 2245 | '&start=' + |
| 2246 | ((n |
| 2247 | ? 60 * parseInt(n, 10) |
| 2248 | : 0) + |
| 2249 | parseInt(o, 10)) |
| 2250 | ); |
| 2251 | } |
| 2252 | )) |
| 2253 | : 'vimeo' === e && (p = p.replace('&%23', '#')), |
| 2254 | !1 |
| 2255 | ); |
| 2256 | } |
| 2257 | }), |
| 2258 | h |
| 2259 | ? (a.opts.thumb || |
| 2260 | (a.opts.$thumb && a.opts.$thumb.length) || |
| 2261 | (a.opts.thumb = r), |
| 2262 | 'iframe' === h && |
| 2263 | (a.opts = t.extend(!0, a.opts, { |
| 2264 | iframe: { |
| 2265 | preload: !1, |
| 2266 | attr: { scrolling: 'no' }, |
| 2267 | }, |
| 2268 | })), |
| 2269 | t.extend(a, { |
| 2270 | type: h, |
| 2271 | src: p, |
| 2272 | origSrc: a.src, |
| 2273 | contentSource: f, |
| 2274 | contentType: |
| 2275 | 'image' === h |
| 2276 | ? 'image' |
| 2277 | : 'gmap_place' == f || 'gmap_search' == f |
| 2278 | ? 'map' |
| 2279 | : 'video', |
| 2280 | })) |
| 2281 | : p && (a.type = a.opts.defaultType); |
| 2282 | }); |
| 2283 | var o = { |
| 2284 | youtube: { |
| 2285 | src: 'https://www.youtube.com/iframe_api', |
| 2286 | class: 'YT', |
| 2287 | loading: !1, |
| 2288 | loaded: !1, |
| 2289 | }, |
| 2290 | vimeo: { |
| 2291 | src: 'https://player.vimeo.com/api/player.js', |
| 2292 | class: 'Vimeo', |
| 2293 | loading: !1, |
| 2294 | loaded: !1, |
| 2295 | }, |
| 2296 | load: function (t) { |
| 2297 | var e, |
| 2298 | n = this; |
| 2299 | if (this[t].loaded) |
| 2300 | return void setTimeout(function () { |
| 2301 | n.done(t); |
| 2302 | }); |
| 2303 | this[t].loading || |
| 2304 | ((this[t].loading = !0), |
| 2305 | (e = document.createElement('script')), |
| 2306 | (e.type = 'text/javascript'), |
| 2307 | (e.src = this[t].src), |
| 2308 | 'youtube' === t |
| 2309 | ? (window.onYouTubeIframeAPIReady = function () { |
| 2310 | (n[t].loaded = !0), n.done(t); |
| 2311 | }) |
| 2312 | : (e.onload = function () { |
| 2313 | (n[t].loaded = !0), n.done(t); |
| 2314 | }), |
| 2315 | document.body.appendChild(e)); |
| 2316 | }, |
| 2317 | done: function (e) { |
| 2318 | var n, o, i; |
| 2319 | 'youtube' === e && delete window.onYouTubeIframeAPIReady, |
| 2320 | (n = t.fancybox.getInstance()) && |
| 2321 | ((o = n.current.$content.find('iframe')), |
| 2322 | 'youtube' === e && void 0 !== YT && YT |
| 2323 | ? (i = new YT.Player(o.attr('id'), { |
| 2324 | events: { |
| 2325 | onStateChange: function (t) { |
| 2326 | 0 == t.data && n.next(); |
| 2327 | }, |
| 2328 | }, |
| 2329 | })) |
| 2330 | : 'vimeo' === e && |
| 2331 | void 0 !== Vimeo && |
| 2332 | Vimeo && |
| 2333 | ((i = new Vimeo.Player(o)), |
| 2334 | i.on('ended', function () { |
| 2335 | n.next(); |
| 2336 | }))); |
| 2337 | }, |
| 2338 | }; |
| 2339 | t(document).on({ |
| 2340 | 'afterShow.fb': function (t, e, n) { |
| 2341 | e.group.length > 1 && |
| 2342 | ('youtube' === n.contentSource || |
| 2343 | 'vimeo' === n.contentSource) && |
| 2344 | o.load(n.contentSource); |
| 2345 | }, |
| 2346 | }); |
| 2347 | })(jQuery), |
| 2348 | (function (t, e, n) { |
| 2349 | 'use strict'; |
| 2350 | var o = (function () { |
| 2351 | return ( |
| 2352 | t.requestAnimationFrame || |
| 2353 | t.webkitRequestAnimationFrame || |
| 2354 | t.mozRequestAnimationFrame || |
| 2355 | t.oRequestAnimationFrame || |
| 2356 | function (e) { |
| 2357 | return t.setTimeout(e, 1e3 / 60); |
| 2358 | } |
| 2359 | ); |
| 2360 | })(), |
| 2361 | i = (function () { |
| 2362 | return ( |
| 2363 | t.cancelAnimationFrame || |
| 2364 | t.webkitCancelAnimationFrame || |
| 2365 | t.mozCancelAnimationFrame || |
| 2366 | t.oCancelAnimationFrame || |
| 2367 | function (e) { |
| 2368 | t.clearTimeout(e); |
| 2369 | } |
| 2370 | ); |
| 2371 | })(), |
| 2372 | a = function (e) { |
| 2373 | var n = []; |
| 2374 | (e = e.originalEvent || e || t.e), |
| 2375 | (e = |
| 2376 | e.touches && e.touches.length |
| 2377 | ? e.touches |
| 2378 | : e.changedTouches && e.changedTouches.length |
| 2379 | ? e.changedTouches |
| 2380 | : [e]); |
| 2381 | for (var o in e) |
| 2382 | e[o].pageX |
| 2383 | ? n.push({ x: e[o].pageX, y: e[o].pageY }) |
| 2384 | : e[o].clientX && |
| 2385 | n.push({ x: e[o].clientX, y: e[o].clientY }); |
| 2386 | return n; |
| 2387 | }, |
| 2388 | s = function (t, e, n) { |
| 2389 | return e && t |
| 2390 | ? 'x' === n |
| 2391 | ? t.x - e.x |
| 2392 | : 'y' === n |
| 2393 | ? t.y - e.y |
| 2394 | : Math.sqrt( |
| 2395 | Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2) |
| 2396 | ) |
| 2397 | : 0; |
| 2398 | }, |
| 2399 | r = function (t) { |
| 2400 | if ( |
| 2401 | t.is( |
| 2402 | 'a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe' |
| 2403 | ) || |
| 2404 | n.isFunction(t.get(0).onclick) || |
| 2405 | t.data('selectable') |
| 2406 | ) |
| 2407 | return !0; |
| 2408 | for (var e = 0, o = t[0].attributes, i = o.length; e < i; e++) |
| 2409 | if ('data-fancybox-' === o[e].nodeName.substr(0, 14)) |
| 2410 | return !0; |
| 2411 | return !1; |
| 2412 | }, |
| 2413 | c = function (e) { |
| 2414 | var n = t.getComputedStyle(e)['overflow-y'], |
| 2415 | o = t.getComputedStyle(e)['overflow-x'], |
| 2416 | i = |
| 2417 | ('scroll' === n || 'auto' === n) && |
| 2418 | e.scrollHeight > e.clientHeight, |
| 2419 | a = |
| 2420 | ('scroll' === o || 'auto' === o) && |
| 2421 | e.scrollWidth > e.clientWidth; |
| 2422 | return i || a; |
| 2423 | }, |
| 2424 | l = function (t) { |
| 2425 | for (var e = !1; ; ) { |
| 2426 | if ((e = c(t.get(0)))) break; |
| 2427 | if ( |
| 2428 | ((t = t.parent()), |
| 2429 | !t.length || |
| 2430 | t.hasClass('fancybox-stage') || |
| 2431 | t.is('body')) |
| 2432 | ) |
| 2433 | break; |
| 2434 | } |
| 2435 | return e; |
| 2436 | }, |
| 2437 | d = function (t) { |
| 2438 | var e = this; |
| 2439 | (e.instance = t), |
| 2440 | (e.$bg = t.$refs.bg), |
| 2441 | (e.$stage = t.$refs.stage), |
| 2442 | (e.$container = t.$refs.container), |
| 2443 | e.destroy(), |
| 2444 | e.$container.on( |
| 2445 | 'touchstart.fb.touch mousedown.fb.touch', |
| 2446 | n.proxy(e, 'ontouchstart') |
| 2447 | ); |
| 2448 | }; |
| 2449 | (d.prototype.destroy = function () { |
| 2450 | var t = this; |
| 2451 | t.$container.off('.fb.touch'), |
| 2452 | n(e).off('.fb.touch'), |
| 2453 | t.requestId && (i(t.requestId), (t.requestId = null)), |
| 2454 | t.tapped && (clearTimeout(t.tapped), (t.tapped = null)); |
| 2455 | }), |
| 2456 | (d.prototype.ontouchstart = function (o) { |
| 2457 | var i = this, |
| 2458 | c = n(o.target), |
| 2459 | d = i.instance, |
| 2460 | u = d.current, |
| 2461 | f = u.$slide, |
| 2462 | p = u.$content, |
| 2463 | h = 'touchstart' == o.type; |
| 2464 | if ( |
| 2465 | (h && i.$container.off('mousedown.fb.touch'), |
| 2466 | (!o.originalEvent || 2 != o.originalEvent.button) && |
| 2467 | f.length && |
| 2468 | c.length && |
| 2469 | !r(c) && |
| 2470 | !r(c.parent()) && |
| 2471 | (c.is('img') || |
| 2472 | !( |
| 2473 | o.originalEvent.clientX > |
| 2474 | c[0].clientWidth + c.offset().left |
| 2475 | ))) |
| 2476 | ) { |
| 2477 | if ( |
| 2478 | !u || |
| 2479 | d.isAnimating || |
| 2480 | u.$slide.hasClass('fancybox-animated') |
| 2481 | ) |
| 2482 | return o.stopPropagation(), void o.preventDefault(); |
| 2483 | (i.realPoints = i.startPoints = a(o)), |
| 2484 | i.startPoints.length && |
| 2485 | (u.touch && o.stopPropagation(), |
| 2486 | (i.startEvent = o), |
| 2487 | (i.canTap = !0), |
| 2488 | (i.$target = c), |
| 2489 | (i.$content = p), |
| 2490 | (i.opts = u.opts.touch), |
| 2491 | (i.isPanning = !1), |
| 2492 | (i.isSwiping = !1), |
| 2493 | (i.isZooming = !1), |
| 2494 | (i.isScrolling = !1), |
| 2495 | (i.canPan = d.canPan()), |
| 2496 | (i.startTime = new Date().getTime()), |
| 2497 | (i.distanceX = i.distanceY = i.distance = 0), |
| 2498 | (i.canvasWidth = Math.round(f[0].clientWidth)), |
| 2499 | (i.canvasHeight = Math.round(f[0].clientHeight)), |
| 2500 | (i.contentLastPos = null), |
| 2501 | (i.contentStartPos = n.fancybox.getTranslate( |
| 2502 | i.$content |
| 2503 | ) || { top: 0, left: 0 }), |
| 2504 | (i.sliderStartPos = n.fancybox.getTranslate(f)), |
| 2505 | (i.stagePos = n.fancybox.getTranslate( |
| 2506 | d.$refs.stage |
| 2507 | )), |
| 2508 | (i.sliderStartPos.top -= i.stagePos.top), |
| 2509 | (i.sliderStartPos.left -= i.stagePos.left), |
| 2510 | (i.contentStartPos.top -= i.stagePos.top), |
| 2511 | (i.contentStartPos.left -= i.stagePos.left), |
| 2512 | n(e) |
| 2513 | .off('.fb.touch') |
| 2514 | .on( |
| 2515 | h |
| 2516 | ? 'touchend.fb.touch touchcancel.fb.touch' |
| 2517 | : 'mouseup.fb.touch mouseleave.fb.touch', |
| 2518 | n.proxy(i, 'ontouchend') |
| 2519 | ) |
| 2520 | .on( |
| 2521 | h |
| 2522 | ? 'touchmove.fb.touch' |
| 2523 | : 'mousemove.fb.touch', |
| 2524 | n.proxy(i, 'ontouchmove') |
| 2525 | ), |
| 2526 | n.fancybox.isMobile && |
| 2527 | e.addEventListener('scroll', i.onscroll, !0), |
| 2528 | (((i.opts || i.canPan) && |
| 2529 | (c.is(i.$stage) || i.$stage.find(c).length)) || |
| 2530 | (c.is('.fancybox-image') && o.preventDefault(), |
| 2531 | n.fancybox.isMobile && |
| 2532 | c.parents('.fancybox-caption').length)) && |
| 2533 | ((i.isScrollable = l(c) || l(c.parent())), |
| 2534 | (n.fancybox.isMobile && i.isScrollable) || |
| 2535 | o.preventDefault(), |
| 2536 | (1 === i.startPoints.length || u.hasError) && |
| 2537 | (i.canPan |
| 2538 | ? (n.fancybox.stop(i.$content), |
| 2539 | (i.isPanning = !0)) |
| 2540 | : (i.isSwiping = !0), |
| 2541 | i.$container.addClass( |
| 2542 | 'fancybox-is-grabbing' |
| 2543 | )), |
| 2544 | 2 === i.startPoints.length && |
| 2545 | 'image' === u.type && |
| 2546 | (u.isLoaded || u.$ghost) && |
| 2547 | ((i.canTap = !1), |
| 2548 | (i.isSwiping = !1), |
| 2549 | (i.isPanning = !1), |
| 2550 | (i.isZooming = !0), |
| 2551 | n.fancybox.stop(i.$content), |
| 2552 | (i.centerPointStartX = |
| 2553 | 0.5 * |
| 2554 | (i.startPoints[0].x + |
| 2555 | i.startPoints[1].x) - |
| 2556 | n(t).scrollLeft()), |
| 2557 | (i.centerPointStartY = |
| 2558 | 0.5 * |
| 2559 | (i.startPoints[0].y + |
| 2560 | i.startPoints[1].y) - |
| 2561 | n(t).scrollTop()), |
| 2562 | (i.percentageOfImageAtPinchPointX = |
| 2563 | (i.centerPointStartX - |
| 2564 | i.contentStartPos.left) / |
| 2565 | i.contentStartPos.width), |
| 2566 | (i.percentageOfImageAtPinchPointY = |
| 2567 | (i.centerPointStartY - |
| 2568 | i.contentStartPos.top) / |
| 2569 | i.contentStartPos.height), |
| 2570 | (i.startDistanceBetweenFingers = s( |
| 2571 | i.startPoints[0], |
| 2572 | i.startPoints[1] |
| 2573 | ))))); |
| 2574 | } |
| 2575 | }), |
| 2576 | (d.prototype.onscroll = function (t) { |
| 2577 | var n = this; |
| 2578 | (n.isScrolling = !0), |
| 2579 | e.removeEventListener('scroll', n.onscroll, !0); |
| 2580 | }), |
| 2581 | (d.prototype.ontouchmove = function (t) { |
| 2582 | var e = this; |
| 2583 | return void 0 !== t.originalEvent.buttons && |
| 2584 | 0 === t.originalEvent.buttons |
| 2585 | ? void e.ontouchend(t) |
| 2586 | : e.isScrolling |
| 2587 | ? void (e.canTap = !1) |
| 2588 | : ((e.newPoints = a(t)), |
| 2589 | void ( |
| 2590 | (e.opts || e.canPan) && |
| 2591 | e.newPoints.length && |
| 2592 | e.newPoints.length && |
| 2593 | ((e.isSwiping && !0 === e.isSwiping) || |
| 2594 | t.preventDefault(), |
| 2595 | (e.distanceX = s( |
| 2596 | e.newPoints[0], |
| 2597 | e.startPoints[0], |
| 2598 | 'x' |
| 2599 | )), |
| 2600 | (e.distanceY = s( |
| 2601 | e.newPoints[0], |
| 2602 | e.startPoints[0], |
| 2603 | 'y' |
| 2604 | )), |
| 2605 | (e.distance = s(e.newPoints[0], e.startPoints[0])), |
| 2606 | e.distance > 0 && |
| 2607 | (e.isSwiping |
| 2608 | ? e.onSwipe(t) |
| 2609 | : e.isPanning |
| 2610 | ? e.onPan() |
| 2611 | : e.isZooming && e.onZoom())) |
| 2612 | )); |
| 2613 | }), |
| 2614 | (d.prototype.onSwipe = function (e) { |
| 2615 | var a, |
| 2616 | s = this, |
| 2617 | r = s.instance, |
| 2618 | c = s.isSwiping, |
| 2619 | l = s.sliderStartPos.left || 0; |
| 2620 | if (!0 !== c) |
| 2621 | 'x' == c && |
| 2622 | (s.distanceX > 0 && |
| 2623 | (s.instance.group.length < 2 || |
| 2624 | (0 === s.instance.current.index && |
| 2625 | !s.instance.current.opts.loop)) |
| 2626 | ? (l += Math.pow(s.distanceX, 0.8)) |
| 2627 | : s.distanceX < 0 && |
| 2628 | (s.instance.group.length < 2 || |
| 2629 | (s.instance.current.index === |
| 2630 | s.instance.group.length - 1 && |
| 2631 | !s.instance.current.opts.loop)) |
| 2632 | ? (l -= Math.pow(-s.distanceX, 0.8)) |
| 2633 | : (l += s.distanceX)), |
| 2634 | (s.sliderLastPos = { |
| 2635 | top: |
| 2636 | 'x' == c |
| 2637 | ? 0 |
| 2638 | : s.sliderStartPos.top + s.distanceY, |
| 2639 | left: l, |
| 2640 | }), |
| 2641 | s.requestId && (i(s.requestId), (s.requestId = null)), |
| 2642 | (s.requestId = o(function () { |
| 2643 | s.sliderLastPos && |
| 2644 | (n.each(s.instance.slides, function (t, e) { |
| 2645 | var o = e.pos - s.instance.currPos; |
| 2646 | n.fancybox.setTranslate(e.$slide, { |
| 2647 | top: s.sliderLastPos.top, |
| 2648 | left: |
| 2649 | s.sliderLastPos.left + |
| 2650 | o * s.canvasWidth + |
| 2651 | o * e.opts.gutter, |
| 2652 | }); |
| 2653 | }), |
| 2654 | s.$container.addClass('fancybox-is-sliding')); |
| 2655 | })); |
| 2656 | else if (Math.abs(s.distance) > 10) { |
| 2657 | if ( |
| 2658 | ((s.canTap = !1), |
| 2659 | r.group.length < 2 && s.opts.vertical |
| 2660 | ? (s.isSwiping = 'y') |
| 2661 | : r.isDragging || |
| 2662 | !1 === s.opts.vertical || |
| 2663 | ('auto' === s.opts.vertical && n(t).width() > 800) |
| 2664 | ? (s.isSwiping = 'x') |
| 2665 | : ((a = Math.abs( |
| 2666 | (180 * |
| 2667 | Math.atan2(s.distanceY, s.distanceX)) / |
| 2668 | Math.PI |
| 2669 | )), |
| 2670 | (s.isSwiping = a > 45 && a < 135 ? 'y' : 'x')), |
| 2671 | 'y' === s.isSwiping && |
| 2672 | n.fancybox.isMobile && |
| 2673 | s.isScrollable) |
| 2674 | ) |
| 2675 | return void (s.isScrolling = !0); |
| 2676 | (r.isDragging = s.isSwiping), |
| 2677 | (s.startPoints = s.newPoints), |
| 2678 | n.each(r.slides, function (t, e) { |
| 2679 | var o, i; |
| 2680 | n.fancybox.stop(e.$slide), |
| 2681 | (o = n.fancybox.getTranslate(e.$slide)), |
| 2682 | (i = n.fancybox.getTranslate(r.$refs.stage)), |
| 2683 | e.$slide |
| 2684 | .css({ |
| 2685 | transform: '', |
| 2686 | opacity: '', |
| 2687 | 'transition-duration': '', |
| 2688 | }) |
| 2689 | .removeClass('fancybox-animated') |
| 2690 | .removeClass(function (t, e) { |
| 2691 | return ( |
| 2692 | e.match(/(^|\s)fancybox-fx-\S+/g) || |
| 2693 | [] |
| 2694 | ).join(' '); |
| 2695 | }), |
| 2696 | e.pos === r.current.pos && |
| 2697 | ((s.sliderStartPos.top = o.top - i.top), |
| 2698 | (s.sliderStartPos.left = o.left - i.left)), |
| 2699 | n.fancybox.setTranslate(e.$slide, { |
| 2700 | top: o.top - i.top, |
| 2701 | left: o.left - i.left, |
| 2702 | }); |
| 2703 | }), |
| 2704 | r.SlideShow && |
| 2705 | r.SlideShow.isActive && |
| 2706 | r.SlideShow.stop(); |
| 2707 | } |
| 2708 | }), |
| 2709 | (d.prototype.onPan = function () { |
| 2710 | var t = this; |
| 2711 | if ( |
| 2712 | s(t.newPoints[0], t.realPoints[0]) < |
| 2713 | (n.fancybox.isMobile ? 10 : 5) |
| 2714 | ) |
| 2715 | return void (t.startPoints = t.newPoints); |
| 2716 | (t.canTap = !1), |
| 2717 | (t.contentLastPos = t.limitMovement()), |
| 2718 | t.requestId && i(t.requestId), |
| 2719 | (t.requestId = o(function () { |
| 2720 | n.fancybox.setTranslate(t.$content, t.contentLastPos); |
| 2721 | })); |
| 2722 | }), |
| 2723 | (d.prototype.limitMovement = function () { |
| 2724 | var t, |
| 2725 | e, |
| 2726 | n, |
| 2727 | o, |
| 2728 | i, |
| 2729 | a, |
| 2730 | s = this, |
| 2731 | r = s.canvasWidth, |
| 2732 | c = s.canvasHeight, |
| 2733 | l = s.distanceX, |
| 2734 | d = s.distanceY, |
| 2735 | u = s.contentStartPos, |
| 2736 | f = u.left, |
| 2737 | p = u.top, |
| 2738 | h = u.width, |
| 2739 | g = u.height; |
| 2740 | return ( |
| 2741 | (i = h > r ? f + l : f), |
| 2742 | (a = p + d), |
| 2743 | (t = Math.max(0, 0.5 * r - 0.5 * h)), |
| 2744 | (e = Math.max(0, 0.5 * c - 0.5 * g)), |
| 2745 | (n = Math.min(r - h, 0.5 * r - 0.5 * h)), |
| 2746 | (o = Math.min(c - g, 0.5 * c - 0.5 * g)), |
| 2747 | l > 0 && |
| 2748 | i > t && |
| 2749 | (i = t - 1 + Math.pow(-t + f + l, 0.8) || 0), |
| 2750 | l < 0 && |
| 2751 | i < n && |
| 2752 | (i = n + 1 - Math.pow(n - f - l, 0.8) || 0), |
| 2753 | d > 0 && |
| 2754 | a > e && |
| 2755 | (a = e - 1 + Math.pow(-e + p + d, 0.8) || 0), |
| 2756 | d < 0 && |
| 2757 | a < o && |
| 2758 | (a = o + 1 - Math.pow(o - p - d, 0.8) || 0), |
| 2759 | { top: a, left: i } |
| 2760 | ); |
| 2761 | }), |
| 2762 | (d.prototype.limitPosition = function (t, e, n, o) { |
| 2763 | var i = this, |
| 2764 | a = i.canvasWidth, |
| 2765 | s = i.canvasHeight; |
| 2766 | return ( |
| 2767 | n > a |
| 2768 | ? ((t = t > 0 ? 0 : t), (t = t < a - n ? a - n : t)) |
| 2769 | : (t = Math.max(0, a / 2 - n / 2)), |
| 2770 | o > s |
| 2771 | ? ((e = e > 0 ? 0 : e), (e = e < s - o ? s - o : e)) |
| 2772 | : (e = Math.max(0, s / 2 - o / 2)), |
| 2773 | { top: e, left: t } |
| 2774 | ); |
| 2775 | }), |
| 2776 | (d.prototype.onZoom = function () { |
| 2777 | var e = this, |
| 2778 | a = e.contentStartPos, |
| 2779 | r = a.width, |
| 2780 | c = a.height, |
| 2781 | l = a.left, |
| 2782 | d = a.top, |
| 2783 | u = s(e.newPoints[0], e.newPoints[1]), |
| 2784 | f = u / e.startDistanceBetweenFingers, |
| 2785 | p = Math.floor(r * f), |
| 2786 | h = Math.floor(c * f), |
| 2787 | g = (r - p) * e.percentageOfImageAtPinchPointX, |
| 2788 | b = (c - h) * e.percentageOfImageAtPinchPointY, |
| 2789 | m = |
| 2790 | (e.newPoints[0].x + e.newPoints[1].x) / 2 - |
| 2791 | n(t).scrollLeft(), |
| 2792 | v = |
| 2793 | (e.newPoints[0].y + e.newPoints[1].y) / 2 - |
| 2794 | n(t).scrollTop(), |
| 2795 | y = m - e.centerPointStartX, |
| 2796 | x = v - e.centerPointStartY, |
| 2797 | w = l + (g + y), |
| 2798 | $ = d + (b + x), |
| 2799 | S = { top: $, left: w, scaleX: f, scaleY: f }; |
| 2800 | (e.canTap = !1), |
| 2801 | (e.newWidth = p), |
| 2802 | (e.newHeight = h), |
| 2803 | (e.contentLastPos = S), |
| 2804 | e.requestId && i(e.requestId), |
| 2805 | (e.requestId = o(function () { |
| 2806 | n.fancybox.setTranslate(e.$content, e.contentLastPos); |
| 2807 | })); |
| 2808 | }), |
| 2809 | (d.prototype.ontouchend = function (t) { |
| 2810 | var o = this, |
| 2811 | s = o.isSwiping, |
| 2812 | r = o.isPanning, |
| 2813 | c = o.isZooming, |
| 2814 | l = o.isScrolling; |
| 2815 | if ( |
| 2816 | ((o.endPoints = a(t)), |
| 2817 | (o.dMs = Math.max(new Date().getTime() - o.startTime, 1)), |
| 2818 | o.$container.removeClass('fancybox-is-grabbing'), |
| 2819 | n(e).off('.fb.touch'), |
| 2820 | e.removeEventListener('scroll', o.onscroll, !0), |
| 2821 | o.requestId && (i(o.requestId), (o.requestId = null)), |
| 2822 | (o.isSwiping = !1), |
| 2823 | (o.isPanning = !1), |
| 2824 | (o.isZooming = !1), |
| 2825 | (o.isScrolling = !1), |
| 2826 | (o.instance.isDragging = !1), |
| 2827 | o.canTap) |
| 2828 | ) |
| 2829 | return o.onTap(t); |
| 2830 | (o.speed = 100), |
| 2831 | (o.velocityX = (o.distanceX / o.dMs) * 0.5), |
| 2832 | (o.velocityY = (o.distanceY / o.dMs) * 0.5), |
| 2833 | r |
| 2834 | ? o.endPanning() |
| 2835 | : c |
| 2836 | ? o.endZooming() |
| 2837 | : o.endSwiping(s, l); |
| 2838 | }), |
| 2839 | (d.prototype.endSwiping = function (t, e) { |
| 2840 | var o = this, |
| 2841 | i = !1, |
| 2842 | a = o.instance.group.length, |
| 2843 | s = Math.abs(o.distanceX), |
| 2844 | r = |
| 2845 | 'x' == t && |
| 2846 | a > 1 && |
| 2847 | ((o.dMs > 130 && s > 10) || s > 50); |
| 2848 | (o.sliderLastPos = null), |
| 2849 | 'y' == t && !e && Math.abs(o.distanceY) > 50 |
| 2850 | ? (n.fancybox.animate( |
| 2851 | o.instance.current.$slide, |
| 2852 | { |
| 2853 | top: |
| 2854 | o.sliderStartPos.top + |
| 2855 | o.distanceY + |
| 2856 | 150 * o.velocityY, |
| 2857 | opacity: 0, |
| 2858 | }, |
| 2859 | 200 |
| 2860 | ), |
| 2861 | (i = o.instance.close(!0, 250))) |
| 2862 | : r && o.distanceX > 0 |
| 2863 | ? (i = o.instance.previous(300)) |
| 2864 | : r && o.distanceX < 0 && (i = o.instance.next(300)), |
| 2865 | !1 !== i || |
| 2866 | ('x' != t && 'y' != t) || |
| 2867 | o.instance.centerSlide(200), |
| 2868 | o.$container.removeClass('fancybox-is-sliding'); |
| 2869 | }), |
| 2870 | (d.prototype.endPanning = function () { |
| 2871 | var t, |
| 2872 | e, |
| 2873 | o, |
| 2874 | i = this; |
| 2875 | i.contentLastPos && |
| 2876 | (!1 === i.opts.momentum || i.dMs > 350 |
| 2877 | ? ((t = i.contentLastPos.left), |
| 2878 | (e = i.contentLastPos.top)) |
| 2879 | : ((t = i.contentLastPos.left + 500 * i.velocityX), |
| 2880 | (e = i.contentLastPos.top + 500 * i.velocityY)), |
| 2881 | (o = i.limitPosition( |
| 2882 | t, |
| 2883 | e, |
| 2884 | i.contentStartPos.width, |
| 2885 | i.contentStartPos.height |
| 2886 | )), |
| 2887 | (o.width = i.contentStartPos.width), |
| 2888 | (o.height = i.contentStartPos.height), |
| 2889 | n.fancybox.animate(i.$content, o, 366)); |
| 2890 | }), |
| 2891 | (d.prototype.endZooming = function () { |
| 2892 | var t, |
| 2893 | e, |
| 2894 | o, |
| 2895 | i, |
| 2896 | a = this, |
| 2897 | s = a.instance.current, |
| 2898 | r = a.newWidth, |
| 2899 | c = a.newHeight; |
| 2900 | a.contentLastPos && |
| 2901 | ((t = a.contentLastPos.left), |
| 2902 | (e = a.contentLastPos.top), |
| 2903 | (i = { |
| 2904 | top: e, |
| 2905 | left: t, |
| 2906 | width: r, |
| 2907 | height: c, |
| 2908 | scaleX: 1, |
| 2909 | scaleY: 1, |
| 2910 | }), |
| 2911 | n.fancybox.setTranslate(a.$content, i), |
| 2912 | r < a.canvasWidth && c < a.canvasHeight |
| 2913 | ? a.instance.scaleToFit(150) |
| 2914 | : r > s.width || c > s.height |
| 2915 | ? a.instance.scaleToActual( |
| 2916 | a.centerPointStartX, |
| 2917 | a.centerPointStartY, |
| 2918 | 150 |
| 2919 | ) |
| 2920 | : ((o = a.limitPosition(t, e, r, c)), |
| 2921 | n.fancybox.animate(a.$content, o, 150))); |
| 2922 | }), |
| 2923 | (d.prototype.onTap = function (e) { |
| 2924 | var o, |
| 2925 | i = this, |
| 2926 | s = n(e.target), |
| 2927 | r = i.instance, |
| 2928 | c = r.current, |
| 2929 | l = (e && a(e)) || i.startPoints, |
| 2930 | d = l[0] ? l[0].x - n(t).scrollLeft() - i.stagePos.left : 0, |
| 2931 | u = l[0] ? l[0].y - n(t).scrollTop() - i.stagePos.top : 0, |
| 2932 | f = function (t) { |
| 2933 | var o = c.opts[t]; |
| 2934 | if ((n.isFunction(o) && (o = o.apply(r, [c, e])), o)) |
| 2935 | switch (o) { |
| 2936 | case 'close': |
| 2937 | r.close(i.startEvent); |
| 2938 | break; |
| 2939 | case 'toggleControls': |
| 2940 | r.toggleControls(); |
| 2941 | break; |
| 2942 | case 'next': |
| 2943 | r.next(); |
| 2944 | break; |
| 2945 | case 'nextOrClose': |
| 2946 | r.group.length > 1 |
| 2947 | ? r.next() |
| 2948 | : r.close(i.startEvent); |
| 2949 | break; |
| 2950 | case 'zoom': |
| 2951 | 'image' == c.type && |
| 2952 | (c.isLoaded || c.$ghost) && |
| 2953 | (r.canPan() |
| 2954 | ? r.scaleToFit() |
| 2955 | : r.isScaledDown() |
| 2956 | ? r.scaleToActual(d, u) |
| 2957 | : r.group.length < 2 && |
| 2958 | r.close(i.startEvent)); |
| 2959 | } |
| 2960 | }; |
| 2961 | if ( |
| 2962 | (!e.originalEvent || 2 != e.originalEvent.button) && |
| 2963 | (s.is('img') || !(d > s[0].clientWidth + s.offset().left)) |
| 2964 | ) { |
| 2965 | if ( |
| 2966 | s.is( |
| 2967 | '.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container' |
| 2968 | ) |
| 2969 | ) |
| 2970 | o = 'Outside'; |
| 2971 | else if (s.is('.fancybox-slide')) o = 'Slide'; |
| 2972 | else { |
| 2973 | if ( |
| 2974 | !r.current.$content || |
| 2975 | !r.current.$content.find(s).addBack().filter(s) |
| 2976 | .length |
| 2977 | ) |
| 2978 | return; |
| 2979 | o = 'Content'; |
| 2980 | } |
| 2981 | if (i.tapped) { |
| 2982 | if ( |
| 2983 | (clearTimeout(i.tapped), |
| 2984 | (i.tapped = null), |
| 2985 | Math.abs(d - i.tapX) > 50 || |
| 2986 | Math.abs(u - i.tapY) > 50) |
| 2987 | ) |
| 2988 | return this; |
| 2989 | f('dblclick' + o); |
| 2990 | } else |
| 2991 | (i.tapX = d), |
| 2992 | (i.tapY = u), |
| 2993 | c.opts['dblclick' + o] && |
| 2994 | c.opts['dblclick' + o] !== c.opts['click' + o] |
| 2995 | ? (i.tapped = setTimeout(function () { |
| 2996 | (i.tapped = null), |
| 2997 | r.isAnimating || f('click' + o); |
| 2998 | }, 500)) |
| 2999 | : f('click' + o); |
| 3000 | return this; |
| 3001 | } |
| 3002 | }), |
| 3003 | n(e) |
| 3004 | .on('onActivate.fb', function (t, e) { |
| 3005 | e && !e.Guestures && (e.Guestures = new d(e)); |
| 3006 | }) |
| 3007 | .on('beforeClose.fb', function (t, e) { |
| 3008 | e && e.Guestures && e.Guestures.destroy(); |
| 3009 | }); |
| 3010 | })(window, document, jQuery), |
| 3011 | (function (t, e) { |
| 3012 | 'use strict'; |
| 3013 | e.extend(!0, e.fancybox.defaults, { |
| 3014 | btnTpl: { |
| 3015 | slideShow: |
| 3016 | '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg></button>', |
| 3017 | }, |
| 3018 | slideShow: { autoStart: !1, speed: 3e3, progress: !0 }, |
| 3019 | }); |
| 3020 | var n = function (t) { |
| 3021 | (this.instance = t), this.init(); |
| 3022 | }; |
| 3023 | e.extend(n.prototype, { |
| 3024 | timer: null, |
| 3025 | isActive: !1, |
| 3026 | $button: null, |
| 3027 | init: function () { |
| 3028 | var t = this, |
| 3029 | n = t.instance, |
| 3030 | o = n.group[n.currIndex].opts.slideShow; |
| 3031 | (t.$button = n.$refs.toolbar |
| 3032 | .find('[data-fancybox-play]') |
| 3033 | .on('click', function () { |
| 3034 | t.toggle(); |
| 3035 | })), |
| 3036 | n.group.length < 2 || !o |
| 3037 | ? t.$button.hide() |
| 3038 | : o.progress && |
| 3039 | (t.$progress = e( |
| 3040 | '<div class="fancybox-progress"></div>' |
| 3041 | ).appendTo(n.$refs.inner)); |
| 3042 | }, |
| 3043 | set: function (t) { |
| 3044 | var n = this, |
| 3045 | o = n.instance, |
| 3046 | i = o.current; |
| 3047 | i && |
| 3048 | (!0 === t || i.opts.loop || o.currIndex < o.group.length - 1) |
| 3049 | ? n.isActive && |
| 3050 | 'video' !== i.contentType && |
| 3051 | (n.$progress && |
| 3052 | e.fancybox.animate( |
| 3053 | n.$progress.show(), |
| 3054 | { scaleX: 1 }, |
| 3055 | i.opts.slideShow.speed |
| 3056 | ), |
| 3057 | (n.timer = setTimeout(function () { |
| 3058 | o.current.opts.loop || |
| 3059 | o.current.index != o.group.length - 1 |
| 3060 | ? o.next() |
| 3061 | : o.jumpTo(0); |
| 3062 | }, i.opts.slideShow.speed))) |
| 3063 | : (n.stop(), (o.idleSecondsCounter = 0), o.showControls()); |
| 3064 | }, |
| 3065 | clear: function () { |
| 3066 | var t = this; |
| 3067 | clearTimeout(t.timer), |
| 3068 | (t.timer = null), |
| 3069 | t.$progress && t.$progress.removeAttr('style').hide(); |
| 3070 | }, |
| 3071 | start: function () { |
| 3072 | var t = this, |
| 3073 | e = t.instance.current; |
| 3074 | e && |
| 3075 | (t.$button |
| 3076 | .attr( |
| 3077 | 'title', |
| 3078 | (e.opts.i18n[e.opts.lang] || e.opts.i18n.en) |
| 3079 | .PLAY_STOP |
| 3080 | ) |
| 3081 | .removeClass('fancybox-button--play') |
| 3082 | .addClass('fancybox-button--pause'), |
| 3083 | (t.isActive = !0), |
| 3084 | e.isComplete && t.set(!0), |
| 3085 | t.instance.trigger('onSlideShowChange', !0)); |
| 3086 | }, |
| 3087 | stop: function () { |
| 3088 | var t = this, |
| 3089 | e = t.instance.current; |
| 3090 | t.clear(), |
| 3091 | t.$button |
| 3092 | .attr( |
| 3093 | 'title', |
| 3094 | (e.opts.i18n[e.opts.lang] || e.opts.i18n.en) |
| 3095 | .PLAY_START |
| 3096 | ) |
| 3097 | .removeClass('fancybox-button--pause') |
| 3098 | .addClass('fancybox-button--play'), |
| 3099 | (t.isActive = !1), |
| 3100 | t.instance.trigger('onSlideShowChange', !1), |
| 3101 | t.$progress && t.$progress.removeAttr('style').hide(); |
| 3102 | }, |
| 3103 | toggle: function () { |
| 3104 | var t = this; |
| 3105 | t.isActive ? t.stop() : t.start(); |
| 3106 | }, |
| 3107 | }), |
| 3108 | e(t).on({ |
| 3109 | 'onInit.fb': function (t, e) { |
| 3110 | e && !e.SlideShow && (e.SlideShow = new n(e)); |
| 3111 | }, |
| 3112 | 'beforeShow.fb': function (t, e, n, o) { |
| 3113 | var i = e && e.SlideShow; |
| 3114 | o |
| 3115 | ? i && n.opts.slideShow.autoStart && i.start() |
| 3116 | : i && i.isActive && i.clear(); |
| 3117 | }, |
| 3118 | 'afterShow.fb': function (t, e, n) { |
| 3119 | var o = e && e.SlideShow; |
| 3120 | o && o.isActive && o.set(); |
| 3121 | }, |
| 3122 | 'afterKeydown.fb': function (n, o, i, a, s) { |
| 3123 | var r = o && o.SlideShow; |
| 3124 | !r || |
| 3125 | !i.opts.slideShow || |
| 3126 | (80 !== s && 32 !== s) || |
| 3127 | e(t.activeElement).is('button,a,input') || |
| 3128 | (a.preventDefault(), r.toggle()); |
| 3129 | }, |
| 3130 | 'beforeClose.fb onDeactivate.fb': function (t, e) { |
| 3131 | var n = e && e.SlideShow; |
| 3132 | n && n.stop(); |
| 3133 | }, |
| 3134 | }), |
| 3135 | e(t).on('visibilitychange', function () { |
| 3136 | var n = e.fancybox.getInstance(), |
| 3137 | o = n && n.SlideShow; |
| 3138 | o && o.isActive && (t.hidden ? o.clear() : o.set()); |
| 3139 | }); |
| 3140 | })(document, jQuery), |
| 3141 | (function (t, e) { |
| 3142 | 'use strict'; |
| 3143 | var n = (function () { |
| 3144 | for ( |
| 3145 | var e = [ |
| 3146 | [ |
| 3147 | 'requestFullscreen', |
| 3148 | 'exitFullscreen', |
| 3149 | 'fullscreenElement', |
| 3150 | 'fullscreenEnabled', |
| 3151 | 'fullscreenchange', |
| 3152 | 'fullscreenerror', |
| 3153 | ], |
| 3154 | [ |
| 3155 | 'webkitRequestFullscreen', |
| 3156 | 'webkitExitFullscreen', |
| 3157 | 'webkitFullscreenElement', |
| 3158 | 'webkitFullscreenEnabled', |
| 3159 | 'webkitfullscreenchange', |
| 3160 | 'webkitfullscreenerror', |
| 3161 | ], |
| 3162 | [ |
| 3163 | 'webkitRequestFullScreen', |
| 3164 | 'webkitCancelFullScreen', |
| 3165 | 'webkitCurrentFullScreenElement', |
| 3166 | 'webkitCancelFullScreen', |
| 3167 | 'webkitfullscreenchange', |
| 3168 | 'webkitfullscreenerror', |
| 3169 | ], |
| 3170 | [ |
| 3171 | 'mozRequestFullScreen', |
| 3172 | 'mozCancelFullScreen', |
| 3173 | 'mozFullScreenElement', |
| 3174 | 'mozFullScreenEnabled', |
| 3175 | 'mozfullscreenchange', |
| 3176 | 'mozfullscreenerror', |
| 3177 | ], |
| 3178 | [ |
| 3179 | 'msRequestFullscreen', |
| 3180 | 'msExitFullscreen', |
| 3181 | 'msFullscreenElement', |
| 3182 | 'msFullscreenEnabled', |
| 3183 | 'MSFullscreenChange', |
| 3184 | 'MSFullscreenError', |
| 3185 | ], |
| 3186 | ], |
| 3187 | n = {}, |
| 3188 | o = 0; |
| 3189 | o < e.length; |
| 3190 | o++ |
| 3191 | ) { |
| 3192 | var i = e[o]; |
| 3193 | if (i && i[1] in t) { |
| 3194 | for (var a = 0; a < i.length; a++) n[e[0][a]] = i[a]; |
| 3195 | return n; |
| 3196 | } |
| 3197 | } |
| 3198 | return !1; |
| 3199 | })(); |
| 3200 | if (n) { |
| 3201 | var o = { |
| 3202 | request: function (e) { |
| 3203 | (e = e || t.documentElement), |
| 3204 | e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT); |
| 3205 | }, |
| 3206 | exit: function () { |
| 3207 | t[n.exitFullscreen](); |
| 3208 | }, |
| 3209 | toggle: function (e) { |
| 3210 | (e = e || t.documentElement), |
| 3211 | this.isFullscreen() ? this.exit() : this.request(e); |
| 3212 | }, |
| 3213 | isFullscreen: function () { |
| 3214 | return Boolean(t[n.fullscreenElement]); |
| 3215 | }, |
| 3216 | enabled: function () { |
| 3217 | return Boolean(t[n.fullscreenEnabled]); |
| 3218 | }, |
| 3219 | }; |
| 3220 | e.extend(!0, e.fancybox.defaults, { |
| 3221 | btnTpl: { |
| 3222 | fullScreen: |
| 3223 | '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg></button>', |
| 3224 | }, |
| 3225 | fullScreen: { autoStart: !1 }, |
| 3226 | }), |
| 3227 | e(t).on(n.fullscreenchange, function () { |
| 3228 | var t = o.isFullscreen(), |
| 3229 | n = e.fancybox.getInstance(); |
| 3230 | n && |
| 3231 | (n.current && |
| 3232 | 'image' === n.current.type && |
| 3233 | n.isAnimating && |
| 3234 | ((n.isAnimating = !1), |
| 3235 | n.update(!0, !0, 0), |
| 3236 | n.isComplete || n.complete()), |
| 3237 | n.trigger('onFullscreenChange', t), |
| 3238 | n.$refs.container.toggleClass( |
| 3239 | 'fancybox-is-fullscreen', |
| 3240 | t |
| 3241 | ), |
| 3242 | n.$refs.toolbar |
| 3243 | .find('[data-fancybox-fullscreen]') |
| 3244 | .toggleClass('fancybox-button--fsenter', !t) |
| 3245 | .toggleClass('fancybox-button--fsexit', t)); |
| 3246 | }); |
| 3247 | } |
| 3248 | e(t).on({ |
| 3249 | 'onInit.fb': function (t, e) { |
| 3250 | var i; |
| 3251 | if (!n) |
| 3252 | return void e.$refs.toolbar |
| 3253 | .find('[data-fancybox-fullscreen]') |
| 3254 | .remove(); |
| 3255 | e && e.group[e.currIndex].opts.fullScreen |
| 3256 | ? ((i = e.$refs.container), |
| 3257 | i.on( |
| 3258 | 'click.fb-fullscreen', |
| 3259 | '[data-fancybox-fullscreen]', |
| 3260 | function (t) { |
| 3261 | t.stopPropagation(), |
| 3262 | t.preventDefault(), |
| 3263 | o.toggle(); |
| 3264 | } |
| 3265 | ), |
| 3266 | e.opts.fullScreen && |
| 3267 | !0 === e.opts.fullScreen.autoStart && |
| 3268 | o.request(), |
| 3269 | (e.FullScreen = o)) |
| 3270 | : e && |
| 3271 | e.$refs.toolbar.find('[data-fancybox-fullscreen]').hide(); |
| 3272 | }, |
| 3273 | 'afterKeydown.fb': function (t, e, n, o, i) { |
| 3274 | e && |
| 3275 | e.FullScreen && |
| 3276 | 70 === i && |
| 3277 | (o.preventDefault(), e.FullScreen.toggle()); |
| 3278 | }, |
| 3279 | 'beforeClose.fb': function (t, e) { |
| 3280 | e && |
| 3281 | e.FullScreen && |
| 3282 | e.$refs.container.hasClass('fancybox-is-fullscreen') && |
| 3283 | o.exit(); |
| 3284 | }, |
| 3285 | }); |
| 3286 | })(document, jQuery), |
| 3287 | (function (t, e) { |
| 3288 | 'use strict'; |
| 3289 | var n = 'fancybox-thumbs'; |
| 3290 | e.fancybox.defaults = e.extend( |
| 3291 | !0, |
| 3292 | { |
| 3293 | btnTpl: { |
| 3294 | thumbs: |
| 3295 | '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg></button>', |
| 3296 | }, |
| 3297 | thumbs: { |
| 3298 | autoStart: !1, |
| 3299 | hideOnClose: !0, |
| 3300 | parentEl: '.fancybox-container', |
| 3301 | axis: 'y', |
| 3302 | }, |
| 3303 | }, |
| 3304 | e.fancybox.defaults |
| 3305 | ); |
| 3306 | var o = function (t) { |
| 3307 | this.init(t); |
| 3308 | }; |
| 3309 | e.extend(o.prototype, { |
| 3310 | $button: null, |
| 3311 | $grid: null, |
| 3312 | $list: null, |
| 3313 | isVisible: !1, |
| 3314 | isActive: !1, |
| 3315 | init: function (t) { |
| 3316 | var e = this, |
| 3317 | n = t.group, |
| 3318 | o = 0; |
| 3319 | (e.instance = t), |
| 3320 | (e.opts = n[t.currIndex].opts.thumbs), |
| 3321 | (t.Thumbs = e), |
| 3322 | (e.$button = t.$refs.toolbar.find( |
| 3323 | '[data-fancybox-thumbs]' |
| 3324 | )); |
| 3325 | for ( |
| 3326 | var i = 0, a = n.length; |
| 3327 | i < a && (n[i].thumb && o++, !(o > 1)); |
| 3328 | i++ |
| 3329 | ); |
| 3330 | o > 1 && e.opts |
| 3331 | ? (e.$button.removeAttr('style').on('click', function () { |
| 3332 | e.toggle(); |
| 3333 | }), |
| 3334 | (e.isActive = !0)) |
| 3335 | : e.$button.hide(); |
| 3336 | }, |
| 3337 | create: function () { |
| 3338 | var t, |
| 3339 | o = this, |
| 3340 | i = o.instance, |
| 3341 | a = o.opts.parentEl, |
| 3342 | s = []; |
| 3343 | o.$grid || |
| 3344 | ((o.$grid = e( |
| 3345 | '<div class="' + |
| 3346 | n + |
| 3347 | ' ' + |
| 3348 | n + |
| 3349 | '-' + |
| 3350 | o.opts.axis + |
| 3351 | '"></div>' |
| 3352 | ).appendTo(i.$refs.container.find(a).addBack().filter(a))), |
| 3353 | o.$grid.on('click', 'a', function () { |
| 3354 | i.jumpTo(e(this).attr('data-index')); |
| 3355 | })), |
| 3356 | o.$list || |
| 3357 | (o.$list = e('<div class="' + n + '__list">').appendTo( |
| 3358 | o.$grid |
| 3359 | )), |
| 3360 | e.each(i.group, function (e, n) { |
| 3361 | (t = n.thumb), |
| 3362 | t || 'image' !== n.type || (t = n.src), |
| 3363 | s.push( |
| 3364 | '<a href="javascript:;" tabindex="0" data-index="' + |
| 3365 | e + |
| 3366 | '"' + |
| 3367 | (t && t.length |
| 3368 | ? ' style="background-image:url(' + |
| 3369 | t + |
| 3370 | ')"' |
| 3371 | : 'class="fancybox-thumbs-missing"') + |
| 3372 | '></a>' |
| 3373 | ); |
| 3374 | }), |
| 3375 | (o.$list[0].innerHTML = s.join('')), |
| 3376 | 'x' === o.opts.axis && |
| 3377 | o.$list.width( |
| 3378 | parseInt(o.$grid.css('padding-right'), 10) + |
| 3379 | i.group.length * |
| 3380 | o.$list.children().eq(0).outerWidth(!0) |
| 3381 | ); |
| 3382 | }, |
| 3383 | focus: function (t) { |
| 3384 | var e, |
| 3385 | n, |
| 3386 | o = this, |
| 3387 | i = o.$list, |
| 3388 | a = o.$grid; |
| 3389 | o.instance.current && |
| 3390 | ((e = i |
| 3391 | .children() |
| 3392 | .removeClass('fancybox-thumbs-active') |
| 3393 | .filter( |
| 3394 | '[data-index="' + o.instance.current.index + '"]' |
| 3395 | ) |
| 3396 | .addClass('fancybox-thumbs-active')), |
| 3397 | (n = e.position()), |
| 3398 | 'y' === o.opts.axis && |
| 3399 | (n.top < 0 || n.top > i.height() - e.outerHeight()) |
| 3400 | ? i |
| 3401 | .stop() |
| 3402 | .animate( |
| 3403 | { scrollTop: i.scrollTop() + n.top }, |
| 3404 | t |
| 3405 | ) |
| 3406 | : 'x' === o.opts.axis && |
| 3407 | (n.left < a.scrollLeft() || |
| 3408 | n.left > |
| 3409 | a.scrollLeft() + |
| 3410 | (a.width() - e.outerWidth())) && |
| 3411 | i.parent().stop().animate({ scrollLeft: n.left }, t)); |
| 3412 | }, |
| 3413 | update: function () { |
| 3414 | var t = this; |
| 3415 | t.instance.$refs.container.toggleClass( |
| 3416 | 'fancybox-show-thumbs', |
| 3417 | this.isVisible |
| 3418 | ), |
| 3419 | t.isVisible |
| 3420 | ? (t.$grid || t.create(), |
| 3421 | t.instance.trigger('onThumbsShow'), |
| 3422 | t.focus(0)) |
| 3423 | : t.$grid && t.instance.trigger('onThumbsHide'), |
| 3424 | t.instance.update(); |
| 3425 | }, |
| 3426 | hide: function () { |
| 3427 | (this.isVisible = !1), this.update(); |
| 3428 | }, |
| 3429 | show: function () { |
| 3430 | (this.isVisible = !0), this.update(); |
| 3431 | }, |
| 3432 | toggle: function () { |
| 3433 | (this.isVisible = !this.isVisible), this.update(); |
| 3434 | }, |
| 3435 | }), |
| 3436 | e(t).on({ |
| 3437 | 'onInit.fb': function (t, e) { |
| 3438 | var n; |
| 3439 | e && |
| 3440 | !e.Thumbs && |
| 3441 | ((n = new o(e)), |
| 3442 | n.isActive && !0 === n.opts.autoStart && n.show()); |
| 3443 | }, |
| 3444 | 'beforeShow.fb': function (t, e, n, o) { |
| 3445 | var i = e && e.Thumbs; |
| 3446 | i && i.isVisible && i.focus(o ? 0 : 250); |
| 3447 | }, |
| 3448 | 'afterKeydown.fb': function (t, e, n, o, i) { |
| 3449 | var a = e && e.Thumbs; |
| 3450 | a && |
| 3451 | a.isActive && |
| 3452 | 71 === i && |
| 3453 | (o.preventDefault(), a.toggle()); |
| 3454 | }, |
| 3455 | 'beforeClose.fb': function (t, e) { |
| 3456 | var n = e && e.Thumbs; |
| 3457 | n && |
| 3458 | n.isVisible && |
| 3459 | !1 !== n.opts.hideOnClose && |
| 3460 | n.$grid.hide(); |
| 3461 | }, |
| 3462 | }); |
| 3463 | })(document, jQuery), |
| 3464 | (function (t, e) { |
| 3465 | 'use strict'; |
| 3466 | function n(t) { |
| 3467 | var e = { |
| 3468 | '&': '&', |
| 3469 | '<': '<', |
| 3470 | '>': '>', |
| 3471 | '"': '"', |
| 3472 | "'": ''', |
| 3473 | '/': '/', |
| 3474 | '`': '`', |
| 3475 | '=': '=', |
| 3476 | }; |
| 3477 | return String(t).replace(/[&<>"'`=\/]/g, function (t) { |
| 3478 | return e[t]; |
| 3479 | }); |
| 3480 | } |
| 3481 | e.extend(!0, e.fancybox.defaults, { |
| 3482 | btnTpl: { |
| 3483 | share: |
| 3484 | '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg></button>', |
| 3485 | }, |
| 3486 | share: { |
| 3487 | url: function (t, e) { |
| 3488 | return ( |
| 3489 | (!t.currentHash && |
| 3490 | 'inline' !== e.type && |
| 3491 | 'html' !== e.type && |
| 3492 | (e.origSrc || e.src)) || |
| 3493 | window.location |
| 3494 | ); |
| 3495 | }, |
| 3496 | tpl: |
| 3497 | '<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p></div>', |
| 3498 | }, |
| 3499 | }), |
| 3500 | e(t).on('click', '[data-fancybox-share]', function () { |
| 3501 | var t, |
| 3502 | o, |
| 3503 | i = e.fancybox.getInstance(), |
| 3504 | a = i.current || null; |
| 3505 | a && |
| 3506 | ('function' === e.type(a.opts.share.url) && |
| 3507 | (t = a.opts.share.url.apply(a, [i, a])), |
| 3508 | (o = a.opts.share.tpl |
| 3509 | .replace( |
| 3510 | /\{\{media\}\}/g, |
| 3511 | 'image' === a.type ? encodeURIComponent(a.src) : '' |
| 3512 | ) |
| 3513 | .replace(/\{\{url\}\}/g, encodeURIComponent(t)) |
| 3514 | .replace(/\{\{url_raw\}\}/g, n(t)) |
| 3515 | .replace( |
| 3516 | /\{\{descr\}\}/g, |
| 3517 | i.$caption |
| 3518 | ? encodeURIComponent(i.$caption.text()) |
| 3519 | : '' |
| 3520 | )), |
| 3521 | e.fancybox.open({ |
| 3522 | src: i.translate(i, o), |
| 3523 | type: 'html', |
| 3524 | opts: { |
| 3525 | touch: !1, |
| 3526 | animationEffect: !1, |
| 3527 | afterLoad: function (t, e) { |
| 3528 | i.$refs.container.one( |
| 3529 | 'beforeClose.fb', |
| 3530 | function () { |
| 3531 | t.close(null, 0); |
| 3532 | } |
| 3533 | ), |
| 3534 | e.$content |
| 3535 | .find('.fancybox-share__button') |
| 3536 | .click(function () { |
| 3537 | return ( |
| 3538 | window.open( |
| 3539 | this.href, |
| 3540 | 'Share', |
| 3541 | 'width=550, height=450' |
| 3542 | ), |
| 3543 | !1 |
| 3544 | ); |
| 3545 | }); |
| 3546 | }, |
| 3547 | mobile: { autoFocus: !1 }, |
| 3548 | }, |
| 3549 | })); |
| 3550 | }); |
| 3551 | })(document, jQuery), |
| 3552 | (function (t, e, n) { |
| 3553 | 'use strict'; |
| 3554 | function o() { |
| 3555 | var e = t.location.hash.substr(1), |
| 3556 | n = e.split('-'), |
| 3557 | o = |
| 3558 | n.length > 1 && /^\+?\d+$/.test(n[n.length - 1]) |
| 3559 | ? parseInt(n.pop(-1), 10) || 1 |
| 3560 | : 1, |
| 3561 | i = n.join('-'); |
| 3562 | return { hash: e, index: o < 1 ? 1 : o, gallery: i }; |
| 3563 | } |
| 3564 | function i(t) { |
| 3565 | '' !== t.gallery && |
| 3566 | n("[data-fancybox='" + n.escapeSelector(t.gallery) + "']") |
| 3567 | .eq(t.index - 1) |
| 3568 | .focus() |
| 3569 | .trigger('click.fb-start'); |
| 3570 | } |
| 3571 | function a(t) { |
| 3572 | var e, n; |
| 3573 | return ( |
| 3574 | !!t && |
| 3575 | ((e = t.current ? t.current.opts : t.opts), |
| 3576 | '' !== |
| 3577 | (n = |
| 3578 | e.hash || |
| 3579 | (e.$orig |
| 3580 | ? e.$orig.data('fancybox') || |
| 3581 | e.$orig.data('fancybox-trigger') |
| 3582 | : '')) && n) |
| 3583 | ); |
| 3584 | } |
| 3585 | n.escapeSelector || |
| 3586 | (n.escapeSelector = function (t) { |
| 3587 | return (t + '').replace( |
| 3588 | /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, |
| 3589 | function (t, e) { |
| 3590 | return e |
| 3591 | ? '\0' === t |
| 3592 | ? '�' |
| 3593 | : t.slice(0, -1) + |
| 3594 | '\\' + |
| 3595 | t.charCodeAt(t.length - 1).toString(16) + |
| 3596 | ' ' |
| 3597 | : '\\' + t; |
| 3598 | } |
| 3599 | ); |
| 3600 | }), |
| 3601 | n(function () { |
| 3602 | !1 !== n.fancybox.defaults.hash && |
| 3603 | (n(e).on({ |
| 3604 | 'onInit.fb': function (t, e) { |
| 3605 | var n, i; |
| 3606 | !1 !== e.group[e.currIndex].opts.hash && |
| 3607 | ((n = o()), |
| 3608 | (i = a(e)) && |
| 3609 | n.gallery && |
| 3610 | i == n.gallery && |
| 3611 | (e.currIndex = n.index - 1)); |
| 3612 | }, |
| 3613 | 'beforeShow.fb': function (n, o, i, s) { |
| 3614 | var r; |
| 3615 | i && |
| 3616 | !1 !== i.opts.hash && |
| 3617 | (r = a(o)) && |
| 3618 | ((o.currentHash = |
| 3619 | r + |
| 3620 | (o.group.length > 1 |
| 3621 | ? '-' + (i.index + 1) |
| 3622 | : '')), |
| 3623 | t.location.hash !== '#' + o.currentHash && |
| 3624 | (s && |
| 3625 | !o.origHash && |
| 3626 | (o.origHash = t.location.hash), |
| 3627 | o.hashTimer && clearTimeout(o.hashTimer), |
| 3628 | (o.hashTimer = setTimeout(function () { |
| 3629 | 'replaceState' in t.history |
| 3630 | ? (t.history[ |
| 3631 | s |
| 3632 | ? 'pushState' |
| 3633 | : 'replaceState' |
| 3634 | ]( |
| 3635 | {}, |
| 3636 | e.title, |
| 3637 | t.location.pathname + |
| 3638 | t.location.search + |
| 3639 | '#' + |
| 3640 | o.currentHash |
| 3641 | ), |
| 3642 | s && (o.hasCreatedHistory = !0)) |
| 3643 | : (t.location.hash = o.currentHash), |
| 3644 | (o.hashTimer = null); |
| 3645 | }, 300)))); |
| 3646 | }, |
| 3647 | 'beforeClose.fb': function (n, o, i) { |
| 3648 | i && |
| 3649 | !1 !== i.opts.hash && |
| 3650 | (clearTimeout(o.hashTimer), |
| 3651 | o.currentHash && o.hasCreatedHistory |
| 3652 | ? t.history.back() |
| 3653 | : o.currentHash && |
| 3654 | ('replaceState' in t.history |
| 3655 | ? t.history.replaceState( |
| 3656 | {}, |
| 3657 | e.title, |
| 3658 | t.location.pathname + |
| 3659 | t.location.search + |
| 3660 | (o.origHash || '') |
| 3661 | ) |
| 3662 | : (t.location.hash = o.origHash)), |
| 3663 | (o.currentHash = null)); |
| 3664 | }, |
| 3665 | }), |
| 3666 | n(t).on('hashchange.fb', function () { |
| 3667 | var t = o(), |
| 3668 | e = null; |
| 3669 | n.each( |
| 3670 | n('.fancybox-container').get().reverse(), |
| 3671 | function (t, o) { |
| 3672 | var i = n(o).data('FancyBox'); |
| 3673 | if (i && i.currentHash) return (e = i), !1; |
| 3674 | } |
| 3675 | ), |
| 3676 | e |
| 3677 | ? e.currentHash === t.gallery + '-' + t.index || |
| 3678 | (1 === t.index && |
| 3679 | e.currentHash == t.gallery) || |
| 3680 | ((e.currentHash = null), e.close()) |
| 3681 | : '' !== t.gallery && i(t); |
| 3682 | }), |
| 3683 | setTimeout(function () { |
| 3684 | n.fancybox.getInstance() || i(o()); |
| 3685 | }, 50)); |
| 3686 | }); |
| 3687 | })(window, document, jQuery), |
| 3688 | (function (t, e) { |
| 3689 | 'use strict'; |
| 3690 | var n = new Date().getTime(); |
| 3691 | e(t).on({ |
| 3692 | 'onInit.fb': function (t, e, o) { |
| 3693 | e.$refs.stage.on( |
| 3694 | 'mousewheel DOMMouseScroll wheel MozMousePixelScroll', |
| 3695 | function (t) { |
| 3696 | var o = e.current, |
| 3697 | i = new Date().getTime(); |
| 3698 | e.group.length < 2 || |
| 3699 | !1 === o.opts.wheel || |
| 3700 | ('auto' === o.opts.wheel && 'image' !== o.type) || |
| 3701 | (t.preventDefault(), |
| 3702 | t.stopPropagation(), |
| 3703 | o.$slide.hasClass('fancybox-animated') || |
| 3704 | ((t = t.originalEvent || t), |
| 3705 | i - n < 250 || |
| 3706 | ((n = i), |
| 3707 | e[ |
| 3708 | (-t.deltaY || |
| 3709 | -t.deltaX || |
| 3710 | t.wheelDelta || |
| 3711 | -t.detail) < 0 |
| 3712 | ? 'next' |
| 3713 | : 'previous' |
| 3714 | ]()))); |
| 3715 | } |
| 3716 | ); |
| 3717 | }, |
| 3718 | }); |
| 3719 | })(document, jQuery); |
| 3720 |