forked from a64f7bb4-7358-4778-9fbe-3b882c34cc1d/v1
75 lines
1.8 KiB
JavaScript
75 lines
1.8 KiB
JavaScript
/**
|
|
* @file
|
|
* Provides Photobox integration for Image and Media fields.
|
|
*
|
|
* @tbd deprecated at 2.5 and and removed at 3.+, this library is unmaintained,
|
|
* and has good replacements like PhotoSwipe, Splidebox, Slick Lightbox, etc.
|
|
*/
|
|
|
|
(function ($, Drupal, _doc) {
|
|
|
|
'use strict';
|
|
|
|
var _context = _doc;
|
|
var _idOnce = 'b-photobox';
|
|
var _element = '[data-photobox-gallery]';
|
|
|
|
/**
|
|
* Blazy Photobox utility functions.
|
|
*
|
|
* @param {HTMLElement} box
|
|
* The photobox HTML element.
|
|
*/
|
|
function process(box) {
|
|
var $box = $(box);
|
|
|
|
function callback(el) {
|
|
if ($.isElm(el)) {
|
|
var caption = $.next(el);
|
|
if (caption) {
|
|
var title = $.find(_context, '#pbCaption .title');
|
|
if ($.isElm(title)) {
|
|
title.innerHTML = caption.innerHTML;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$box.photobox('a[data-photobox-trigger]', {
|
|
thumb: '> [data-thumb]',
|
|
thumbAttr: 'data-thumb'
|
|
}, callback);
|
|
}
|
|
|
|
/**
|
|
* Attaches blazy photobox behavior to HTML element.
|
|
*
|
|
* @type {Drupal~behavior}
|
|
*/
|
|
Drupal.behaviors.blazyPhotobox = {
|
|
attach: function (context) {
|
|
|
|
_context = $.context(context);
|
|
|
|
// Converts jQuery.photobox into dBlazy.photobox to demonstrate the new
|
|
// dBlazy plugin system post Blazy 2.6.
|
|
if (jQuery && $.isFun(jQuery.fn.photobox) && !$.isFun($.fn.photobox)) {
|
|
var _pb = jQuery.fn.photobox;
|
|
|
|
$.fn.photobox = function (target, settings, callback) {
|
|
return $(_pb.apply(this, arguments));
|
|
};
|
|
}
|
|
|
|
$.once(process, _idOnce, _element, _context);
|
|
|
|
},
|
|
detach: function (context, setting, trigger) {
|
|
if (trigger === 'unload') {
|
|
$.once.removeSafely(_idOnce, _element, _context);
|
|
}
|
|
}
|
|
};
|
|
|
|
}(dBlazy, Drupal, this.document));
|