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">
93<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">
3295<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">
3484<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);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.