{"mappings":"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","sources":["src/jquery.gridder.js"],"sourcesContent":["(function(factory) {\r\n factory(jQuery);\r\n })(function($) {\r\n\r\n /* Custom Easing */\r\n $.fn.extend($.easing,{\r\n def:\"easeInOutExpo\", easeInOutExpo:function(e,f,a,h,g){if(f===0){return a;}if(f===g){return a+h;}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a;}return h/2*(-Math.pow(2,-10*--f)+2)+a;}\r\n }); \r\n \r\n /* KEYPRESS LEFT & RIGHT ARROW */\r\n /* This will work only if a current gridder is opened. */\r\n $(document).keydown(function(e) {\r\n var keycode = e.keyCode;\r\n var $current_gridder = $(\".currentGridder\");\r\n var $current_target = $current_gridder.find(\".gridder-show\");\r\n if($current_gridder.length){\r\n if ( keycode === 37 ) {\r\n //console.log(\"Pressed Left Arrow\");\r\n $current_target.prev().prev().trigger(\"click\");\r\n e.preventDefault();\r\n }\r\n if ( keycode === 39 ) {\r\n //console.log(\"Pressed Right Arrow\");\r\n $current_target.next().trigger(\"click\");\r\n e.preventDefault();\r\n }\r\n }else{\r\n //console.log(\"No active gridder.\");\r\n } \r\n });\r\n \r\n $.fn.gridderExpander = function(options) {\r\n \r\n /* GET DEFAULT OPTIONS OR USE THE ONE PASSED IN THE FUNCTION */\r\n var settings = $.extend( {}, $.fn.gridderExpander.defaults, options ); \r\n\r\n return this.each(function() {\r\n \r\n var mybloc;\r\n var _this = $(this);\r\n var visible = false;\r\n \r\n // START CALLBACK\r\n settings.onStart(_this);\r\n \r\n // CLOSE FUNCTION\r\n function closeExpander(base) {\r\n \r\n // SCROLL TO CORRECT POSITION FIRST\r\n if(settings.scroll){\r\n $(\"html, body\").animate({\r\n scrollTop: base.find(\".selectedItem\").offset().top - settings.scrollOffset\r\n }, {\r\n duration: 200,\r\n easing: settings.animationEasing\r\n });\r\n }\r\n \r\n _this.removeClass(\"hasSelectedItem\");\r\n\r\n // REMOVES GRIDDER EXPAND AREA\r\n visible = false;\r\n base.find(\".selectedItem\").removeClass(\"selectedItem\");\r\n \r\n base.find(\".gridder-show\").slideUp(settings.animationSpeed, settings.animationEasing, function() {\r\n base.find(\".gridder-show\").remove();\r\n settings.onClosed(base);\r\n });\r\n \r\n /* REMOVE CURRENT ACTIVE GRIDDER */\r\n $(\".currentGridder\").removeClass(\"currentGridder\");\r\n }\r\n \r\n // OPEN EXPANDER\r\n function openExpander(myself) {\r\n \r\n /* CURRENT ACTIVE GRIDDER */\r\n $(\".currentGridder\").removeClass(\"currentGridder\");\r\n _this.addClass(\"currentGridder\");\r\n \r\n /* ENSURES THE CORRECT BLOC IS ACTIVE */\r\n if (!myself.hasClass(\"selectedItem\")) {\r\n _this.find(\".selectedItem\").removeClass(\"selectedItem\");\r\n myself.addClass(\"selectedItem\");\r\n } else {\r\n // THE SAME IS ALREADY OPEN, LET\"S CLOSE IT\r\n closeExpander(_this, settings);\r\n return;\r\n }\r\n\r\n /* REMOVES PREVIOUS BLOC */\r\n _this.find(\".gridder-show\").remove();\r\n\r\n\r\n /* ADD CLASS TO THE GRIDDER CONTAINER\r\n * So you can apply global style when item selected. \r\n */\r\n if (!_this.hasClass(\"hasSelectedItem\")) {\r\n _this.addClass(\"hasSelectedItem\");\r\n }\r\n\r\n /* ADD LOADING BLOC */\r\n var $htmlcontent = $(\"<div class=\\\"gridder-show loading\\\"></div>\");\r\n mybloc = $htmlcontent.insertAfter(myself);\r\n \r\n /* GET CONTENT VIA AJAX OR #ID*/\r\n var thecontent = \"\";\r\n \r\n if( myself.data(\"griddercontent\").indexOf(\"#\") === 0 ) {\r\n \r\n // Load #ID Content\r\n thecontent = $(myself.data(\"griddercontent\")).html();\r\n processContent(myself, thecontent);\r\n }else{\r\n \r\n // Load AJAX Content\r\n $.ajax({\r\n type: \"GET\",\r\n url: myself.data(\"griddercontent\"),\r\n success: function(data) {\r\n thecontent = data;\r\n processContent(myself, thecontent);\r\n },\r\n error: function (request) {\r\n thecontent = request.responseText;\r\n processContent(myself, thecontent);\r\n }\r\n });\r\n }\r\n }\r\n \r\n // PROCESS CONTENT\r\n function processContent(myself, thecontent){\r\n\r\n /* FORMAT OUTPUT */ \r\n var htmlcontent = \"<div class=\\\"gridder-padding\\\">\";\r\n \r\n if(settings.showNav){\r\n \r\n /* CHECK IF PREV AND NEXT BUTTON HAVE ITEMS */\r\n var prevItem = ($(\".selectedItem\").prev());\r\n var nextItem = ($(\".selectedItem\").next().next());\r\n \r\n htmlcontent += \"<div class=\\\"gridder-navigation\\\">\";\r\n htmlcontent += \"<a href=\\\"#\\\" class=\\\"gridder-close\\\">\"+settings.closeText+\"</a>\";\r\n htmlcontent += \"<a href=\\\"#\\\" class=\\\"gridder-nav prev \"+(!prevItem.length?\"disabled\":\"\")+\"\\\">\"+settings.prevText+\"</a>\";\r\n htmlcontent += \"<a href=\\\"#\\\" class=\\\"gridder-nav next \"+(!nextItem.length?\"disabled\":\"\")+\"\\\">\"+settings.nextText+\"</a>\";\r\n htmlcontent += \"</div>\";\r\n } \r\n \r\n htmlcontent += \"<div class=\\\"gridder-expanded-content\\\">\";\r\n htmlcontent += thecontent;\r\n htmlcontent += \"</div>\";\r\n htmlcontent += \"</div>\";\r\n\r\n // IF EXPANDER IS ALREADY EXPANDED \r\n if (!visible) {\r\n mybloc.hide().append(htmlcontent).slideDown(settings.animationSpeed, settings.animationEasing, function () {\r\n visible = true;\r\n /* AFTER EXPAND CALLBACK */\r\n if (typeof(settings.onContent) === \"function\") {\r\n settings.onContent(mybloc);\r\n }\r\n });\r\n } else {\r\n mybloc.html(htmlcontent);\r\n mybloc.find(\".gridder-padding\").fadeIn(settings.animationSpeed, settings.animationEasing, function () {\r\n visible = true;\r\n /* CHANGED CALLBACK */\r\n if (typeof(settings.onContent) === \"function\") {\r\n settings.onContent(mybloc);\r\n }\r\n });\r\n }\r\n\r\n /* SCROLL TO CORRECT POSITION AFTER */\r\n if (settings.scroll) {\r\n var offset = (settings.scrollTo === \"panel\" ? myself.offset().top + myself.height() - settings.scrollOffset : myself.offset().top - settings.scrollOffset);\r\n $(\"html, body\").animate({\r\n scrollTop: offset\r\n }, {\r\n duration: settings.animationSpeed,\r\n easing: settings.animationEasing\r\n });\r\n }\r\n \r\n /* REMOVE LOADING CLASS */\r\n mybloc.removeClass(\"loading\");\r\n }\r\n \r\n /* CLICK EVENT */\r\n _this.on(\"click\", \".gridder-list\", function (e) {\r\n e.preventDefault();\r\n var myself = $(this);\r\n openExpander(myself);\r\n });\r\n \r\n /* NEXT BUTTON */\r\n _this.on(\"click\", \".gridder-nav.next\", function(e) {\r\n e.preventDefault();\r\n $(this).parents(\".gridder-show\").next().trigger(\"click\");\r\n });\r\n\r\n /* PREVIOUS BUTTON */\r\n _this.on(\"click\", \".gridder-nav.prev\", function(e) {\r\n e.preventDefault();\r\n $(this).parents(\".gridder-show\").prev().prev().trigger(\"click\");\r\n });\r\n \r\n /* CLOSE BUTTON */\r\n _this.on(\"click\", \".gridder-close\", function(e) {\r\n e.preventDefault();\r\n closeExpander(_this);\r\n });\r\n });\r\n };\r\n \r\n // Default Options\r\n $.fn.gridderExpander.defaults = {\r\n scroll: true,\r\n scrollOffset: 30,\r\n scrollTo: \"panel\", // panel or listitem\r\n animationSpeed: 400,\r\n animationEasing: \"easeInOutExpo\",\r\n showNav: true,\r\n nextText: \"Next\",\r\n prevText: \"Previous\",\r\n closeText: \"Close\", \r\n onStart: function(){},\r\n onContent: function(){},\r\n onClosed: function(){}\r\n };\r\n \r\n});\r\n"],"names":["$","jQuery","fn","extend","easing","def","easeInOutExpo","e","f","a","h","g","Math","pow","document","keydown","keycode","keyCode","$current_gridder","$current_target","find","length","prev","trigger","preventDefault","next","gridderExpander","options","settings","defaults","this","each","mybloc","_this","visible","closeExpander","base","scroll","animate","scrollTop","offset","top","scrollOffset","duration","animationEasing","removeClass","slideUp","animationSpeed","remove","onClosed","openExpander","myself","addClass","hasClass","$htmlcontent","insertAfter","thecontent","data","indexOf","html","processContent","ajax","type","url","success","error","request","responseText","htmlcontent","showNav","prevItem","nextItem","closeText","prevText","nextText","fadeIn","onContent","hide","append","slideDown","scrollTo","height","onStart","on","parents"],"version":3,"file":"jquery.gridder.js.map"}