From 2653f6a943a6ed74e2b72246ba8211c5fb699a7f Mon Sep 17 00:00:00 2001 From: erdgeist Date: Sun, 7 Aug 2016 02:17:47 +0200 Subject: restructured ;) --- js/core/utility.js | 319 ----------------------------------------------------- 1 file changed, 319 deletions(-) delete mode 100755 js/core/utility.js (limited to 'js/core/utility.js') diff --git a/js/core/utility.js b/js/core/utility.js deleted file mode 100755 index 0090b8c..0000000 --- a/js/core/utility.js +++ /dev/null @@ -1,319 +0,0 @@ -/*! UIkit 2.26.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */ -(function(UI) { - - "use strict"; - - var stacks = []; - - UI.component('stackMargin', { - - defaults: { - cls: 'uk-margin-small-top', - rowfirst: false, - observe: false - }, - - boot: function() { - - // init code - UI.ready(function(context) { - - UI.$("[data-uk-margin]", context).each(function() { - - var ele = UI.$(this); - - if (!ele.data("stackMargin")) { - UI.stackMargin(ele, UI.Utils.options(ele.attr("data-uk-margin"))); - } - }); - }); - }, - - init: function() { - - var $this = this; - - UI.$win.on('resize orientationchange', (function() { - - var fn = function() { - $this.process(); - }; - - UI.$(function() { - fn(); - UI.$win.on("load", fn); - }); - - return UI.Utils.debounce(fn, 20); - })()); - - this.on("display.uk.check", function(e) { - if (this.element.is(":visible")) this.process(); - }.bind(this)); - - if (this.options.observe) { - - UI.domObserve(this.element, function(e) { - if ($this.element.is(":visible")) $this.process(); - }); - } - - stacks.push(this); - }, - - process: function() { - - var $this = this, columns = this.element.children(); - - UI.Utils.stackMargin(columns, this.options); - - if (!this.options.rowfirst || !columns.length) { - return this; - } - - // Mark first column elements - var group = {}, minleft = false; - - columns.removeClass(this.options.rowfirst).each(function(offset, $ele){ - - $ele = UI.$(this); - - if (this.style.display != 'none') { - offset = $ele.offset().left; - ((group[offset] = group[offset] || []) && group[offset]).push(this); - minleft = minleft === false ? offset : Math.min(minleft, offset); - } - }); - - UI.$(group[minleft]).addClass(this.options.rowfirst); - - return this; - } - - }); - - - // responsive element e.g. iframes - - (function(){ - - var elements = [], check = function(ele) { - - if (!ele.is(':visible')) return; - - var width = ele.parent().width(), - iwidth = ele.data('width'), - ratio = (width / iwidth), - height = Math.floor(ratio * ele.data('height')); - - ele.css({'height': (width < iwidth) ? height : ele.data('height')}); - }; - - UI.component('responsiveElement', { - - defaults: {}, - - boot: function() { - - // init code - UI.ready(function(context) { - - UI.$("iframe.uk-responsive-width, [data-uk-responsive]", context).each(function() { - - var ele = UI.$(this), obj; - - if (!ele.data("responsiveElement")) { - obj = UI.responsiveElement(ele, {}); - } - }); - }); - }, - - init: function() { - - var ele = this.element; - - if (ele.attr('width') && ele.attr('height')) { - - ele.data({ - - 'width' : ele.attr('width'), - 'height': ele.attr('height') - - }).on('display.uk.check', function(){ - check(ele); - }); - - check(ele); - - elements.push(ele); - } - } - }); - - UI.$win.on('resize load', UI.Utils.debounce(function(){ - - elements.forEach(function(ele){ - check(ele); - }); - - }, 15)); - - })(); - - - - // helper - - UI.Utils.stackMargin = function(elements, options) { - - options = UI.$.extend({ - 'cls': 'uk-margin-small-top' - }, options); - - elements = UI.$(elements).removeClass(options.cls); - - var min = false; - - elements.each(function(offset, height, pos, $ele){ - - $ele = UI.$(this); - - if ($ele.css('display') != 'none') { - - offset = $ele.offset(); - height = $ele.outerHeight(); - pos = offset.top + height; - - $ele.data({ - 'ukMarginPos': pos, - 'ukMarginTop': offset.top - }); - - if (min === false || (offset.top < min.top) ) { - - min = { - top : offset.top, - left : offset.left, - pos : pos - }; - } - } - - }).each(function($ele) { - - $ele = UI.$(this); - - if ($ele.css('display') != 'none' && $ele.data('ukMarginTop') > min.top && $ele.data('ukMarginPos') > min.pos) { - $ele.addClass(options.cls); - } - }); - }; - - UI.Utils.matchHeights = function(elements, options) { - - elements = UI.$(elements).css('min-height', ''); - options = UI.$.extend({ row : true }, options); - - var matchHeights = function(group){ - - if (group.length < 2) return; - - var max = 0; - - group.each(function() { - max = Math.max(max, UI.$(this).outerHeight()); - }).each(function() { - - var element = UI.$(this), - height = max - (element.css('box-sizing') == 'border-box' ? 0 : (element.outerHeight() - element.height())); - - element.css('min-height', height + 'px'); - }); - }; - - if (options.row) { - - elements.first().width(); // force redraw - - setTimeout(function(){ - - var lastoffset = false, group = []; - - elements.each(function() { - - var ele = UI.$(this), offset = ele.offset().top; - - if (offset != lastoffset && group.length) { - - matchHeights(UI.$(group)); - group = []; - offset = ele.offset().top; - } - - group.push(ele); - lastoffset = offset; - }); - - if (group.length) { - matchHeights(UI.$(group)); - } - - }, 0); - - } else { - matchHeights(elements); - } - }; - - (function(cacheSvgs){ - - UI.Utils.inlineSvg = function(selector, root) { - - var images = UI.$(selector || 'img[src$=".svg"]', root || document).each(function(){ - - var img = UI.$(this), - src = img.attr('src'); - - if (!cacheSvgs[src]) { - - var d = UI.$.Deferred(); - - UI.$.get(src, {nc: Math.random()}, function(data){ - d.resolve(UI.$(data).find('svg')); - }); - - cacheSvgs[src] = d.promise(); - } - - cacheSvgs[src].then(function(svg) { - - var $svg = UI.$(svg).clone(); - - if (img.attr('id')) $svg.attr('id', img.attr('id')); - if (img.attr('class')) $svg.attr('class', img.attr('class')); - if (img.attr('style')) $svg.attr('style', img.attr('style')); - - if (img.attr('width')) { - $svg.attr('width', img.attr('width')); - if (!img.attr('height')) $svg.removeAttr('height'); - } - - if (img.attr('height')){ - $svg.attr('height', img.attr('height')); - if (!img.attr('width')) $svg.removeAttr('width'); - } - - img.replaceWith($svg); - }); - }); - }; - - // init code - UI.ready(function(context) { - UI.Utils.inlineSvg('[data-uk-svg]', context); - }); - - })({}); - -})(UIkit); -- cgit v1.2.3