diff options
author | Mario Vavti <mario@mariovavti.com> | 2016-09-07 12:57:52 +0200 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2016-09-07 12:57:52 +0200 |
commit | 628187db169a891f3ea942d1349677bb568b57e8 (patch) | |
tree | 679055f9be872a6a73cfbae5e41a6959be6d32ae /library/foundation/js/foundation/foundation.clearing.js | |
parent | 6e149a2dd350d4037fb89f5bfa2246c5f9a94800 (diff) | |
download | volse-hubzilla-628187db169a891f3ea942d1349677bb568b57e8.tar.gz volse-hubzilla-628187db169a891f3ea942d1349677bb568b57e8.tar.bz2 volse-hubzilla-628187db169a891f3ea942d1349677bb568b57e8.zip |
upgrade foundation to version 6.2.3
Diffstat (limited to 'library/foundation/js/foundation/foundation.clearing.js')
-rw-r--r-- | library/foundation/js/foundation/foundation.clearing.js | 586 |
1 files changed, 0 insertions, 586 deletions
diff --git a/library/foundation/js/foundation/foundation.clearing.js b/library/foundation/js/foundation/foundation.clearing.js deleted file mode 100644 index 78fe36443..000000000 --- a/library/foundation/js/foundation/foundation.clearing.js +++ /dev/null @@ -1,586 +0,0 @@ -;(function ($, window, document, undefined) { - 'use strict'; - - Foundation.libs.clearing = { - name : 'clearing', - - version : '5.5.2', - - settings : { - templates : { - viewing : '<a href="#" class="clearing-close">×</a>' + - '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' + - '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' + - '<a href="#" class="clearing-main-next"><span></span></a></div>' + - '<img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' + - '<img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' - }, - - // comma delimited list of selectors that, on click, will close clearing, - // add 'div.clearing-blackout, div.visible-img' to close on background click - close_selectors : '.clearing-close, div.clearing-blackout', - - // Default to the entire li element. - open_selectors : '', - - // Image will be skipped in carousel. - skip_selector : '', - - touch_label : '', - - // event initializers and locks - init : false, - locked : false - }, - - init : function (scope, method, options) { - var self = this; - Foundation.inherit(this, 'throttle image_loaded'); - - this.bindings(method, options); - - if (self.S(this.scope).is('[' + this.attr_name() + ']')) { - this.assemble(self.S('li', this.scope)); - } else { - self.S('[' + this.attr_name() + ']', this.scope).each(function () { - self.assemble(self.S('li', this)); - }); - } - }, - - events : function (scope) { - var self = this, - S = self.S, - $scroll_container = $('.scroll-container'); - - if ($scroll_container.length > 0) { - this.scope = $scroll_container; - } - - S(this.scope) - .off('.clearing') - .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors, - function (e, current, target) { - var current = current || S(this), - target = target || current, - next = current.next('li'), - settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'), - image = S(e.target); - - e.preventDefault(); - - if (!settings) { - self.init(); - settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'); - } - - // if clearing is open and the current image is - // clicked, go to the next image in sequence - if (target.hasClass('visible') && - current[0] === target[0] && - next.length > 0 && self.is_open(current)) { - target = next; - image = S('img', target); - } - - // set current and target to the clicked li if not otherwise defined. - self.open(image, current, target); - self.update_paddles(target); - }) - - .on('click.fndtn.clearing', '.clearing-main-next', - function (e) { self.nav(e, 'next') }) - .on('click.fndtn.clearing', '.clearing-main-prev', - function (e) { self.nav(e, 'prev') }) - .on('click.fndtn.clearing', this.settings.close_selectors, - function (e) { Foundation.libs.clearing.close(e, this) }); - - $(document).on('keydown.fndtn.clearing', - function (e) { self.keydown(e) }); - - S(window).off('.clearing').on('resize.fndtn.clearing', - function () { self.resize() }); - - this.swipe_events(scope); - }, - - swipe_events : function (scope) { - var self = this, - S = self.S; - - S(this.scope) - .on('touchstart.fndtn.clearing', '.visible-img', function (e) { - if (!e.touches) { e = e.originalEvent; } - var data = { - start_page_x : e.touches[0].pageX, - start_page_y : e.touches[0].pageY, - start_time : (new Date()).getTime(), - delta_x : 0, - is_scrolling : undefined - }; - - S(this).data('swipe-transition', data); - e.stopPropagation(); - }) - .on('touchmove.fndtn.clearing', '.visible-img', function (e) { - if (!e.touches) { - e = e.originalEvent; - } - // Ignore pinch/zoom events - if (e.touches.length > 1 || e.scale && e.scale !== 1) { - return; - } - - var data = S(this).data('swipe-transition'); - - if (typeof data === 'undefined') { - data = {}; - } - - data.delta_x = e.touches[0].pageX - data.start_page_x; - - if (Foundation.rtl) { - data.delta_x = -data.delta_x; - } - - if (typeof data.is_scrolling === 'undefined') { - data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) ); - } - - if (!data.is_scrolling && !data.active) { - e.preventDefault(); - var direction = (data.delta_x < 0) ? 'next' : 'prev'; - data.active = true; - self.nav(e, direction); - } - }) - .on('touchend.fndtn.clearing', '.visible-img', function (e) { - S(this).data('swipe-transition', {}); - e.stopPropagation(); - }); - }, - - assemble : function ($li) { - var $el = $li.parent(); - - if ($el.parent().hasClass('carousel')) { - return; - } - - $el.after('<div id="foundationClearingHolder"></div>'); - - var grid = $el.detach(), - grid_outerHTML = ''; - - if (grid[0] == null) { - return; - } else { - grid_outerHTML = grid[0].outerHTML; - } - - var holder = this.S('#foundationClearingHolder'), - settings = $el.data(this.attr_name(true) + '-init'), - data = { - grid : '<div class="carousel">' + grid_outerHTML + '</div>', - viewing : settings.templates.viewing - }, - wrapper = '<div class="clearing-assembled"><div>' + data.viewing + - data.grid + '</div></div>', - touch_label = this.settings.touch_label; - - if (Modernizr.touch) { - wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end(); - } - - holder.after(wrapper).remove(); - }, - - open : function ($image, current, target) { - var self = this, - body = $(document.body), - root = target.closest('.clearing-assembled'), - container = self.S('div', root).first(), - visible_image = self.S('.visible-img', container), - image = self.S('img', visible_image).not($image), - label = self.S('.clearing-touch-label', container), - error = false, - loaded = {}; - - // Event to disable scrolling on touch devices when Clearing is activated - $('body').on('touchmove', function (e) { - e.preventDefault(); - }); - - image.error(function () { - error = true; - }); - - function startLoad() { - setTimeout(function () { - this.image_loaded(image, function () { - if (image.outerWidth() === 1 && !error) { - startLoad.call(this); - } else { - cb.call(this, image); - } - }.bind(this)); - }.bind(this), 100); - } - - function cb (image) { - var $image = $(image); - $image.css('visibility', 'visible'); - $image.trigger('imageVisible'); - // toggle the gallery - body.css('overflow', 'hidden'); - root.addClass('clearing-blackout'); - container.addClass('clearing-container'); - visible_image.show(); - this.fix_height(target) - .caption(self.S('.clearing-caption', visible_image), self.S('img', target)) - .center_and_label(image, label) - .shift(current, target, function () { - target.closest('li').siblings().removeClass('visible'); - target.closest('li').addClass('visible'); - }); - visible_image.trigger('opened.fndtn.clearing') - } - - if (!this.locked()) { - visible_image.trigger('open.fndtn.clearing'); - // set the image to the selected thumbnail - loaded = this.load($image); - if (loaded.interchange) { - image - .attr('data-interchange', loaded.interchange) - .foundation('interchange', 'reflow'); - } else { - image - .attr('src', loaded.src) - .attr('data-interchange', ''); - } - image.css('visibility', 'hidden'); - - startLoad.call(this); - } - }, - - close : function (e, el) { - e.preventDefault(); - - var root = (function (target) { - if (/blackout/.test(target.selector)) { - return target; - } else { - return target.closest('.clearing-blackout'); - } - }($(el))), - body = $(document.body), container, visible_image; - - if (el === e.target && root) { - body.css('overflow', ''); - container = $('div', root).first(); - visible_image = $('.visible-img', container); - visible_image.trigger('close.fndtn.clearing'); - this.settings.prev_index = 0; - $('ul[' + this.attr_name() + ']', root) - .attr('style', '').closest('.clearing-blackout') - .removeClass('clearing-blackout'); - container.removeClass('clearing-container'); - visible_image.hide(); - visible_image.trigger('closed.fndtn.clearing'); - } - - // Event to re-enable scrolling on touch devices - $('body').off('touchmove'); - - return false; - }, - - is_open : function (current) { - return current.parent().prop('style').length > 0; - }, - - keydown : function (e) { - var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'), - NEXT_KEY = this.rtl ? 37 : 39, - PREV_KEY = this.rtl ? 39 : 37, - ESC_KEY = 27; - - if (e.which === NEXT_KEY) { - this.go(clearing, 'next'); - } - if (e.which === PREV_KEY) { - this.go(clearing, 'prev'); - } - if (e.which === ESC_KEY) { - this.S('a.clearing-close').trigger('click.fndtn.clearing'); - } - }, - - nav : function (e, direction) { - var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout'); - - e.preventDefault(); - this.go(clearing, direction); - }, - - resize : function () { - var image = $('img', '.clearing-blackout .visible-img'), - label = $('.clearing-touch-label', '.clearing-blackout'); - - if (image.length) { - this.center_and_label(image, label); - image.trigger('resized.fndtn.clearing') - } - }, - - // visual adjustments - fix_height : function (target) { - var lis = target.parent().children(), - self = this; - - lis.each(function () { - var li = self.S(this), - image = li.find('img'); - - if (li.height() > image.outerHeight()) { - li.addClass('fix-height'); - } - }) - .closest('ul') - .width(lis.length * 100 + '%'); - - return this; - }, - - update_paddles : function (target) { - target = target.closest('li'); - var visible_image = target - .closest('.carousel') - .siblings('.visible-img'); - - if (target.next().length > 0) { - this.S('.clearing-main-next', visible_image).removeClass('disabled'); - } else { - this.S('.clearing-main-next', visible_image).addClass('disabled'); - } - - if (target.prev().length > 0) { - this.S('.clearing-main-prev', visible_image).removeClass('disabled'); - } else { - this.S('.clearing-main-prev', visible_image).addClass('disabled'); - } - }, - - center_and_label : function (target, label) { - if (!this.rtl && label.length > 0) { - label.css({ - marginLeft : -(label.outerWidth() / 2), - marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10 - }); - } else { - label.css({ - marginRight : -(label.outerWidth() / 2), - marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10, - left: 'auto', - right: '50%' - }); - } - return this; - }, - - // image loading and preloading - - load : function ($image) { - var href, - interchange, - closest_a; - - if ($image[0].nodeName === 'A') { - href = $image.attr('href'); - interchange = $image.data('clearing-interchange'); - } else { - closest_a = $image.closest('a'); - href = closest_a.attr('href'); - interchange = closest_a.data('clearing-interchange'); - } - - this.preload($image); - - return { - 'src': href ? href : $image.attr('src'), - 'interchange': href ? interchange : $image.data('clearing-interchange') - } - }, - - preload : function ($image) { - this - .img($image.closest('li').next(), 'next') - .img($image.closest('li').prev(), 'prev'); - }, - - img : function (img, sibling_type) { - if (img.length) { - var preload_img = $('.clearing-preload-' + sibling_type), - new_a = this.S('a', img), - src, - interchange, - image; - - if (new_a.length) { - src = new_a.attr('href'); - interchange = new_a.data('clearing-interchange'); - } else { - image = this.S('img', img); - src = image.attr('src'); - interchange = image.data('clearing-interchange'); - } - - if (interchange) { - preload_img.attr('data-interchange', interchange); - } else { - preload_img.attr('src', src); - preload_img.attr('data-interchange', ''); - } - } - return this; - }, - - // image caption - - caption : function (container, $image) { - var caption = $image.attr('data-caption'); - - if (caption) { - container - .html(caption) - .show(); - } else { - container - .text('') - .hide(); - } - return this; - }, - - // directional methods - - go : function ($ul, direction) { - var current = this.S('.visible', $ul), - target = current[direction](); - - // Check for skip selector. - if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) { - target = target[direction](); - } - - if (target.length) { - this.S('img', target) - .trigger('click.fndtn.clearing', [current, target]) - .trigger('change.fndtn.clearing'); - } - }, - - shift : function (current, target, callback) { - var clearing = target.parent(), - old_index = this.settings.prev_index || target.index(), - direction = this.direction(clearing, current, target), - dir = this.rtl ? 'right' : 'left', - left = parseInt(clearing.css('left'), 10), - width = target.outerWidth(), - skip_shift; - - var dir_obj = {}; - - // we use jQuery animate instead of CSS transitions because we - // need a callback to unlock the next animation - // needs support for RTL ** - if (target.index() !== old_index && !/skip/.test(direction)) { - if (/left/.test(direction)) { - this.lock(); - dir_obj[dir] = left + width; - clearing.animate(dir_obj, 300, this.unlock()); - } else if (/right/.test(direction)) { - this.lock(); - dir_obj[dir] = left - width; - clearing.animate(dir_obj, 300, this.unlock()); - } - } else if (/skip/.test(direction)) { - // the target image is not adjacent to the current image, so - // do we scroll right or not - skip_shift = target.index() - this.settings.up_count; - this.lock(); - - if (skip_shift > 0) { - dir_obj[dir] = -(skip_shift * width); - clearing.animate(dir_obj, 300, this.unlock()); - } else { - dir_obj[dir] = 0; - clearing.animate(dir_obj, 300, this.unlock()); - } - } - - callback(); - }, - - direction : function ($el, current, target) { - var lis = this.S('li', $el), - li_width = lis.outerWidth() + (lis.outerWidth() / 4), - up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1, - target_index = lis.index(target), - response; - - this.settings.up_count = up_count; - - if (this.adjacent(this.settings.prev_index, target_index)) { - if ((target_index > up_count) && target_index > this.settings.prev_index) { - response = 'right'; - } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) { - response = 'left'; - } else { - response = false; - } - } else { - response = 'skip'; - } - - this.settings.prev_index = target_index; - - return response; - }, - - adjacent : function (current_index, target_index) { - for (var i = target_index + 1; i >= target_index - 1; i--) { - if (i === current_index) { - return true; - } - } - return false; - }, - - // lock management - - lock : function () { - this.settings.locked = true; - }, - - unlock : function () { - this.settings.locked = false; - }, - - locked : function () { - return this.settings.locked; - }, - - off : function () { - this.S(this.scope).off('.fndtn.clearing'); - this.S(window).off('.fndtn.clearing'); - }, - - reflow : function () { - this.init(); - } - }; - -}(jQuery, window, window.document)); |