├── .nvmrc ├── gh-pages ├── bower_components │ ├── jquery │ │ ├── src │ │ │ ├── outro.js │ │ │ ├── selector.js │ │ │ ├── var │ │ │ │ ├── deletedIds.js │ │ │ │ ├── rnotwhite.js │ │ │ │ ├── strundefined.js │ │ │ │ ├── class2type.js │ │ │ │ ├── pnum.js │ │ │ │ ├── push.js │ │ │ │ ├── slice.js │ │ │ │ ├── concat.js │ │ │ │ ├── indexOf.js │ │ │ │ ├── toString.js │ │ │ │ ├── hasOwn.js │ │ │ │ └── support.js │ │ │ ├── ajax │ │ │ │ ├── var │ │ │ │ │ ├── rquery.js │ │ │ │ │ └── nonce.js │ │ │ │ ├── parseXML.js │ │ │ │ ├── parseJSON.js │ │ │ │ ├── load.js │ │ │ │ ├── script.js │ │ │ │ ├── jsonp.js │ │ │ │ └── xhr.js │ │ │ ├── css │ │ │ │ ├── var │ │ │ │ │ ├── rmargin.js │ │ │ │ │ ├── cssExpand.js │ │ │ │ │ ├── rnumnonpx.js │ │ │ │ │ └── isHidden.js │ │ │ │ ├── hiddenVisibleSelectors.js │ │ │ │ ├── swap.js │ │ │ │ ├── addGetHookIf.js │ │ │ │ ├── defaultDisplay.js │ │ │ │ ├── curCSS.js │ │ │ │ └── support.js │ │ │ ├── manipulation │ │ │ │ ├── var │ │ │ │ │ └── rcheckableType.js │ │ │ │ ├── _evalUrl.js │ │ │ │ └── support.js │ │ │ ├── core │ │ │ │ ├── var │ │ │ │ │ └── rsingleTag.js │ │ │ │ ├── parseHTML.js │ │ │ │ ├── access.js │ │ │ │ ├── init.js │ │ │ │ └── ready.js │ │ │ ├── traversing │ │ │ │ ├── var │ │ │ │ │ └── rneedsContext.js │ │ │ │ └── findFilter.js │ │ │ ├── attributes.js │ │ │ ├── deprecated.js │ │ │ ├── effects │ │ │ │ ├── animatedSelector.js │ │ │ │ ├── support.js │ │ │ │ └── Tween.js │ │ │ ├── selector-sizzle.js │ │ │ ├── event │ │ │ │ ├── ajax.js │ │ │ │ ├── support.js │ │ │ │ └── alias.js │ │ │ ├── data │ │ │ │ ├── support.js │ │ │ │ └── accepts.js │ │ │ ├── queue │ │ │ │ └── delay.js │ │ │ ├── jquery.js │ │ │ ├── exports │ │ │ │ ├── global.js │ │ │ │ └── amd.js │ │ │ ├── intro.js │ │ │ ├── wrap.js │ │ │ ├── support.js │ │ │ ├── dimensions.js │ │ │ ├── attributes │ │ │ │ ├── support.js │ │ │ │ ├── prop.js │ │ │ │ ├── classes.js │ │ │ │ ├── val.js │ │ │ │ └── attr.js │ │ │ ├── serialize.js │ │ │ ├── queue.js │ │ │ ├── deferred.js │ │ │ ├── traversing.js │ │ │ ├── callbacks.js │ │ │ └── offset.js │ │ ├── bower.json │ │ ├── .bower.json │ │ └── MIT-LICENSE.txt │ └── slick-carousel │ │ ├── slick │ │ ├── ajax-loader.gif │ │ ├── fonts │ │ │ ├── slick.eot │ │ │ ├── slick.ttf │ │ │ ├── slick.woff │ │ │ └── slick.svg │ │ ├── config.rb │ │ ├── slick.scss │ │ ├── slick.css │ │ ├── slick-theme.css │ │ └── slick-theme.scss │ │ ├── Makefile │ │ ├── component.json │ │ ├── package.json │ │ ├── bower.json │ │ ├── .bower.json │ │ ├── slick.jquery.json │ │ ├── LICENSE │ │ └── CONTRIBUTING.markdown ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── stylesheets │ ├── github-highlight.css │ └── tablesaw.stackonly.css └── javascripts │ └── tablesaw.stackonly.js ├── .bowerrc ├── demo └── lilac.jpg ├── .gitignore ├── bower.json ├── package.json ├── docs ├── src │ └── scripts │ │ └── slick-lightbox.coffee.html └── index.html ├── LICENSE ├── Gulpfile.coffee ├── Gulpfile.js ├── index.jade ├── dist ├── slick-lightbox.css ├── slick-lightbox.min.js.map └── slick-lightbox.min.js ├── src └── styles │ ├── slick-lightbox.css │ └── slick-lightbox.less └── README.md /.nvmrc: -------------------------------------------------------------------------------- 1 | v8.16.0 2 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | })); 2 | -------------------------------------------------------------------------------- /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "gh-pages/bower_components" 3 | } 4 | -------------------------------------------------------------------------------- /demo/lilac.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/demo/lilac.jpg -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define([ "./selector-sizzle" ]); 2 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/deletedIds.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return []; 3 | }); 4 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\?/); 3 | }); 4 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\S+/g); 3 | }); 4 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^margin/); 3 | }); 4 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/strundefined.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return typeof undefined; 3 | }); 4 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // [[Class]] -> type pairs 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | }); 4 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^(?:checkbox|radio)$/i); 3 | }); 4 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; 3 | }); 4 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | }); 6 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./deletedIds" 3 | ], function( deletedIds ) { 4 | return deletedIds.push; 5 | }); 6 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./deletedIds" 3 | ], function( deletedIds ) { 4 | return deletedIds.slice; 5 | }); 6 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./deletedIds" 3 | ], function( deletedIds ) { 4 | return deletedIds.concat; 5 | }); 6 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./deletedIds" 3 | ], function( deletedIds ) { 4 | return deletedIds.indexOf; 5 | }); 6 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | }); 6 | -------------------------------------------------------------------------------- /gh-pages/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/gh-pages/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /gh-pages/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/gh-pages/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /gh-pages/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/gh-pages/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /gh-pages/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/gh-pages/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | }); 6 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // Match a standalone tag 3 | return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); 4 | }); 5 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // All support tests are defined in their respective modules. 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/slick/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/gh-pages/bower_components/slick-carousel/slick/ajax-loader.gif -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/slick/fonts/slick.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/gh-pages/bower_components/slick-carousel/slick/fonts/slick.eot -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/slick/fonts/slick.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/gh-pages/bower_components/slick-carousel/slick/fonts/slick.ttf -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/slick/fonts/slick.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jongacnik/slick-lightbox/HEAD/gh-pages/bower_components/slick-carousel/slick/fonts/slick.woff -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 5 | }); 6 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | return jQuery.expr.match.needsContext; 6 | }); 7 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components slick.js slick.css 3 | @component build --dev 4 | 5 | components: component.json 6 | @component install --dev 7 | 8 | .PHONY: clean 9 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/slick/config.rb: -------------------------------------------------------------------------------- 1 | css_dir = "." 2 | sass_dir = "." 3 | images_dir = "." 4 | fonts_dir = "fonts" 5 | relative_assets = true 6 | 7 | output_style = :compact 8 | line_comments = false 9 | 10 | preferred_syntax = :scss -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./attributes/val", 4 | "./attributes/attr", 5 | "./attributes/prop", 6 | "./attributes/classes" 7 | ], function( jQuery ) { 8 | 9 | // Return jQuery for attributes-only inclusion 10 | return jQuery; 11 | }); 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | src/bower_components/slick-carousel/* 3 | src/bower_components/slick-carousel/**/* 4 | !src/bower_components/slick-carousel/slick/slick-theme.css 5 | !src/bower_components/slick-carousel/slick 6 | src/bower_components/jquery/* 7 | !src/bower_components/jquery/dist 8 | 9 | *.sublime-* 10 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./traversing" 4 | ], function( jQuery ) { 5 | 6 | // The number of elements contained in the matched element set 7 | jQuery.fn.size = function() { 8 | return this.length; 9 | }; 10 | 11 | jQuery.fn.andSelf = jQuery.fn.addBack; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | jQuery.expr.filters.animated = function( elem ) { 8 | return jQuery.grep(jQuery.timers, function( fn ) { 9 | return elem === fn.elem; 10 | }).length; 11 | }; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | jQuery._evalUrl = function( url ) { 6 | return jQuery.ajax({ 7 | url: url, 8 | type: "GET", 9 | dataType: "script", 10 | async: false, 11 | global: false, 12 | "throws": true 13 | }); 14 | }; 15 | 16 | return jQuery._evalUrl; 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | jQuery.find = Sizzle; 7 | jQuery.expr = Sizzle.selectors; 8 | jQuery.expr[":"] = jQuery.expr.pseudos; 9 | jQuery.unique = Sizzle.uniqueSort; 10 | jQuery.text = Sizzle.getText; 11 | jQuery.isXMLDoc = Sizzle.isXML; 12 | jQuery.contains = Sizzle.contains; 13 | 14 | }); 15 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | // Attach a bunch of functions for handling common AJAX events 7 | jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { 8 | jQuery.fn[ type ] = function( fn ) { 9 | return this.on( type, fn ); 10 | }; 11 | }); 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick-lightbox", 3 | "version": "0.1.18", 4 | "ignore": [ 5 | "node_modules", 6 | "gh-pages", 7 | "docs", 8 | "demo", 9 | "src/bower_components", 10 | "src/index.html" 11 | ], 12 | "main": [ 13 | "dist/slick-lightbox.js", 14 | "dist/slick-lightbox.min.js", 15 | "dist/slick-lightbox.css" 16 | ], 17 | "dependencies": { 18 | "jquery": "~1", 19 | "slick-carousel": "~1.4.1" 20 | } 21 | } -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/css/var/isHidden.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | // css is assumed 5 | ], function( jQuery ) { 6 | 7 | return function( elem, el ) { 8 | // isHidden might be called from jQuery#filter function; 9 | // in that case, element will be second argument 10 | elem = el || elem; 11 | return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick", 3 | "repo": "kenwheeler/slick", 4 | "description": "the last carousel you'll ever need", 5 | "version": "1.4.1", 6 | "keywords": ["ui", "jquery", "carousel", "responsive", "slider"], 7 | "dependencies": { 8 | "component/jquery": "*" 9 | }, 10 | "development": {}, 11 | "scripts": { 12 | "slick/slick.js": "slick.js" 13 | }, 14 | "styles": { 15 | "slick/slick.css": "slick.css", 16 | "slick/slick-theme.css": "slick-theme.css" 17 | } 18 | } -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/data/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | (function() { 6 | var div = document.createElement( "div" ); 7 | 8 | // Execute the test only if not already executed in another module. 9 | if (support.deleteExpando == null) { 10 | // Support: IE<9 11 | support.deleteExpando = true; 12 | try { 13 | delete div.test; 14 | } catch( e ) { 15 | support.deleteExpando = false; 16 | } 17 | } 18 | 19 | // Null elements to avoid leaks in IE. 20 | div = null; 21 | })(); 22 | 23 | return support; 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick-carousel", 3 | "version": "1.4.1", 4 | "description": "the last carousel you'll ever need", 5 | "main": "slick/slick.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/kenwheeler/slick.git" 9 | }, 10 | "keywords": [ 11 | "carousel", 12 | "slick", 13 | "responsive" 14 | ], 15 | "author": "Ken Wheeler", 16 | "license": "MIT", 17 | "bugs": { 18 | "url": "https://github.com/kenwheeler/slick/issues" 19 | } 20 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick-lightbox", 3 | "version": "0.1.18", 4 | "devDependencies": { 5 | "coffee-script": "~1.7.1", 6 | "coffeedoc": "~0.3.1", 7 | "ecstatic": "~0.5.1", 8 | "gulp": "~3.8", 9 | "gulp-coffee": "~1.4.1", 10 | "gulp-cssmin": "^0.1.7", 11 | "gulp-less": "~1.2.3", 12 | "gulp-shell": "~0.2.4", 13 | "gulp-uglifyjs": "^0.6.1", 14 | "gulp-util": "~2.2.14", 15 | "jade": "~1.3.1", 16 | "less": "~1.7.2", 17 | "lodash": "^3.6.0", 18 | "marked": "~0.3.2", 19 | "through": "^2.3.7", 20 | "uglify-js": "^2.4.19" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "1.11.3", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "dist/cdn", 10 | "speed", 11 | "test", 12 | "*.md", 13 | "AUTHORS.txt", 14 | "Gruntfile.js", 15 | "package.json" 16 | ], 17 | "devDependencies": { 18 | "sizzle": "2.1.1-jquery.2.1.2", 19 | "requirejs": "2.1.10", 20 | "qunit": "1.14.0", 21 | "sinon": "1.8.1" 22 | }, 23 | "keywords": [ 24 | "jquery", 25 | "javascript", 26 | "library" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "./support", 4 | "../selector", 5 | "../css" 6 | ], function( jQuery, support ) { 7 | 8 | jQuery.expr.filters.hidden = function( elem ) { 9 | // Support: Opera <= 12.12 10 | // Opera reports offsetWidths and offsetHeights less than zero on some elements 11 | return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 || 12 | (!support.reliableHiddenOffsets() && 13 | ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none"); 14 | }; 15 | 16 | jQuery.expr.filters.visible = function( elem ) { 17 | return !jQuery.expr.filters.hidden( elem ); 18 | }; 19 | 20 | }); 21 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | // Based off of the plugin by Clint Helfers, with permission. 8 | // http://blindsignals.com/index.php/2009/07/jquery-delay/ 9 | jQuery.fn.delay = function( time, type ) { 10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 11 | type = type || "fx"; 12 | 13 | return this.queue( type, function( next, hooks ) { 14 | var timeout = setTimeout( next, time ); 15 | hooks.stop = function() { 16 | clearTimeout( timeout ); 17 | }; 18 | }); 19 | }; 20 | 21 | return jQuery.fn.delay; 22 | }); 23 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/data/accepts.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | jQuery.acceptData = function( elem ) { 9 | var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ], 10 | nodeType = +elem.nodeType || 1; 11 | 12 | // Do not set data on non-element DOM nodes because it will not be cleared (#8335). 13 | return nodeType !== 1 && nodeType !== 9 ? 14 | false : 15 | 16 | // Nodes accept data unless otherwise specified; rejection can be conditional 17 | !noData || noData !== true && elem.getAttribute("classid") === noData; 18 | }; 19 | 20 | return jQuery.acceptData; 21 | }); 22 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/css/swap.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // A method for quickly swapping in/out CSS properties to get correct calculations. 6 | jQuery.swap = function( elem, options, callback, args ) { 7 | var ret, name, 8 | old = {}; 9 | 10 | // Remember the old values, and insert the new ones 11 | for ( name in options ) { 12 | old[ name ] = elem.style[ name ]; 13 | elem.style[ name ] = options[ name ]; 14 | } 15 | 16 | ret = callback.apply( elem, args || [] ); 17 | 18 | // Revert the old values 19 | for ( name in options ) { 20 | elem.style[ name ] = old[ name ]; 21 | } 22 | 23 | return ret; 24 | }; 25 | 26 | return jQuery.swap; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /docs/src/scripts/slick-lightbox.coffee.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CoffeeDoc | slick-lightbox.coffee 8 | 9 | 10 | 11 | 12 | 13 |
14 |

slick-lightbox.coffee

15 |
16 |
17 | 21 |
22 | 23 | 24 | 25 |
26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | (function() { 6 | var i, eventName, 7 | div = document.createElement( "div" ); 8 | 9 | // Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event) 10 | for ( i in { submit: true, change: true, focusin: true }) { 11 | eventName = "on" + i; 12 | 13 | if ( !(support[ i + "Bubbles" ] = eventName in window) ) { 14 | // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) 15 | div.setAttribute( eventName, "t" ); 16 | support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false; 17 | } 18 | } 19 | 20 | // Null elements to avoid leaks in IE. 21 | div = null; 22 | })(); 23 | 24 | return support; 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/jquery.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./selector", 4 | "./traversing", 5 | "./callbacks", 6 | "./deferred", 7 | "./core/ready", 8 | "./support", 9 | "./data", 10 | "./queue", 11 | "./queue/delay", 12 | "./attributes", 13 | "./event", 14 | "./event/alias", 15 | "./manipulation", 16 | "./manipulation/_evalUrl", 17 | "./wrap", 18 | "./css", 19 | "./css/hiddenVisibleSelectors", 20 | "./serialize", 21 | "./ajax", 22 | "./ajax/xhr", 23 | "./ajax/script", 24 | "./ajax/jsonp", 25 | "./ajax/load", 26 | "./event/ajax", 27 | "./effects", 28 | "./effects/animatedSelector", 29 | "./offset", 30 | "./dimensions", 31 | "./deprecated", 32 | "./exports/amd", 33 | "./exports/global" 34 | ], function( jQuery ) { 35 | 36 | return jQuery; 37 | 38 | }); 39 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick-carousel", 3 | "main": ["slick/slick.min.js", "slick/slick.css", "slick/slick-theme.css", "slick/fonts/*"], 4 | "version": "1.4.1", 5 | "homepage": "https://github.com/kenwheeler/slick", 6 | "authors": [ 7 | "Ken Wheeler " 8 | ], 9 | "description": "the last carousel you'll ever need", 10 | "keywords": [ 11 | "responsive", 12 | "carousel", 13 | "jquery" 14 | ], 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "test", 21 | "tests", 22 | "index.html" 23 | ], 24 | "dependencies": { 25 | "jquery": ">=1.7" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/exports/global.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../var/strundefined" 4 | ], function( jQuery, strundefined ) { 5 | 6 | var 7 | // Map over jQuery in case of overwrite 8 | _jQuery = window.jQuery, 9 | 10 | // Map over the $ in case of overwrite 11 | _$ = window.$; 12 | 13 | jQuery.noConflict = function( deep ) { 14 | if ( window.$ === jQuery ) { 15 | window.$ = _$; 16 | } 17 | 18 | if ( deep && window.jQuery === jQuery ) { 19 | window.jQuery = _jQuery; 20 | } 21 | 22 | return jQuery; 23 | }; 24 | 25 | // Expose jQuery and $ identifiers, even in 26 | // AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 27 | // and CommonJS for browser emulators (#13566) 28 | if ( typeof noGlobal === strundefined ) { 29 | window.jQuery = window.$ = jQuery; 30 | } 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml, tmp; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | try { 12 | if ( window.DOMParser ) { // Standard 13 | tmp = new DOMParser(); 14 | xml = tmp.parseFromString( data, "text/xml" ); 15 | } else { // IE 16 | xml = new ActiveXObject( "Microsoft.XMLDOM" ); 17 | xml.async = "false"; 18 | xml.loadXML( data ); 19 | } 20 | } catch( e ) { 21 | xml = undefined; 22 | } 23 | if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { 24 | jQuery.error( "Invalid XML: " + data ); 25 | } 26 | return xml; 27 | }; 28 | 29 | return jQuery.parseXML; 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "1.11.3", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "dist/cdn", 10 | "speed", 11 | "test", 12 | "*.md", 13 | "AUTHORS.txt", 14 | "Gruntfile.js", 15 | "package.json" 16 | ], 17 | "devDependencies": { 18 | "sizzle": "2.1.1-jquery.2.1.2", 19 | "requirejs": "2.1.10", 20 | "qunit": "1.14.0", 21 | "sinon": "1.8.1" 22 | }, 23 | "keywords": [ 24 | "jquery", 25 | "javascript", 26 | "library" 27 | ], 28 | "homepage": "https://github.com/jquery/jquery", 29 | "_release": "1.11.3", 30 | "_resolution": { 31 | "type": "version", 32 | "tag": "1.11.3", 33 | "commit": "1472290917f17af05e98007136096784f9051fab" 34 | }, 35 | "_source": "git://github.com/jquery/jquery.git", 36 | "_target": "~1", 37 | "_originalSource": "jquery" 38 | } -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | 3 | function addGetHookIf( conditionFn, hookFn ) { 4 | // Define the hook, we'll check on the first run if it's really needed. 5 | return { 6 | get: function() { 7 | var condition = conditionFn(); 8 | 9 | if ( condition == null ) { 10 | // The test was not ready at this point; screw the hook this time 11 | // but check again when needed next time. 12 | return; 13 | } 14 | 15 | if ( condition ) { 16 | // Hook not needed (or it's not possible to use it due to missing dependency), 17 | // remove it. 18 | // Since there are no other hooks for marginRight, remove the whole object. 19 | delete this.get; 20 | return; 21 | } 22 | 23 | // Hook needed; redefine it so that the support test is not executed again. 24 | 25 | return (this.get = hookFn).apply( this, arguments ); 26 | } 27 | }; 28 | } 29 | 30 | return addGetHookIf; 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick-carousel", 3 | "main": [ 4 | "slick/slick.min.js", 5 | "slick/slick.css", 6 | "slick/slick-theme.css", 7 | "slick/fonts/*" 8 | ], 9 | "version": "1.4.1", 10 | "homepage": "https://github.com/kenwheeler/slick", 11 | "authors": [ 12 | "Ken Wheeler " 13 | ], 14 | "description": "the last carousel you'll ever need", 15 | "keywords": [ 16 | "responsive", 17 | "carousel", 18 | "jquery" 19 | ], 20 | "license": "MIT", 21 | "ignore": [ 22 | "**/.*", 23 | "node_modules", 24 | "bower_components", 25 | "test", 26 | "tests", 27 | "index.html" 28 | ], 29 | "dependencies": { 30 | "jquery": ">=1.7" 31 | }, 32 | "_release": "1.4.1", 33 | "_resolution": { 34 | "type": "version", 35 | "tag": "1.4.1", 36 | "commit": "e3fc23908d647bb2471c00c316ad57b15667975d" 37 | }, 38 | "_source": "git://github.com/kenwheeler/slick.git", 39 | "_target": "~1.4.1", 40 | "_originalSource": "slick-carousel" 41 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/exports/amd.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Register as a named AMD module, since jQuery can be concatenated with other 6 | // files that may use define, but not via a proper concatenation script that 7 | // understands anonymous AMD modules. A named AMD is safest and most robust 8 | // way to register. Lowercase jquery is used because AMD module names are 9 | // derived from file names, and jQuery is normally delivered in a lowercase 10 | // file name. Do this after creating the global so that if an AMD module wants 11 | // to call noConflict to hide this version of jQuery, it will work. 12 | 13 | // Note that for maximum portability, libraries that are not jQuery should 14 | // declare themselves as anonymous modules, and avoid setting a global if an 15 | // AMD loader is present. jQuery is a special case. For more information, see 16 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 17 | 18 | if ( typeof define === "function" && define.amd ) { 19 | define( "jquery", [], function() { 20 | return jQuery; 21 | }); 22 | } 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/core/parseHTML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "./var/rsingleTag", 4 | "../manipulation" // buildFragment 5 | ], function( jQuery, rsingleTag ) { 6 | 7 | // data: string of html 8 | // context (optional): If specified, the fragment will be created in this context, defaults to document 9 | // keepScripts (optional): If true, will include scripts passed in the html string 10 | jQuery.parseHTML = function( data, context, keepScripts ) { 11 | if ( !data || typeof data !== "string" ) { 12 | return null; 13 | } 14 | if ( typeof context === "boolean" ) { 15 | keepScripts = context; 16 | context = false; 17 | } 18 | context = context || document; 19 | 20 | var parsed = rsingleTag.exec( data ), 21 | scripts = !keepScripts && []; 22 | 23 | // Single tag 24 | if ( parsed ) { 25 | return [ context.createElement( parsed[1] ) ]; 26 | } 27 | 28 | parsed = jQuery.buildFragment( [ data ], context, scripts ); 29 | 30 | if ( scripts && scripts.length ) { 31 | jQuery( scripts ).remove(); 32 | } 33 | 34 | return jQuery.merge( [], parsed.childNodes ); 35 | }; 36 | 37 | return jQuery.parseHTML; 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/slick.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick", 3 | "title": "slick", 4 | "description": "A jQuery responsive touch carousel", 5 | "keywords": [ 6 | "responsive", 7 | "slider", 8 | "carousel", 9 | "touch", 10 | "mobile" 11 | ], 12 | "version": "1.4.1", 13 | "author": { 14 | "name": "Ken Wheeler", 15 | "url": "http://kenwheeler.github.io" 16 | }, 17 | "maintainers": [{ 18 | "name": "Ken Wheeler", 19 | "email": "dubmediagroup@gmail.com", 20 | "url": "http://www.dubmediagroup.com" 21 | }], 22 | "licenses": [{ 23 | "type": "MIT", 24 | "url": "https://github.com/kenwheeler/slick/blob/master/LICENSE" 25 | }], 26 | "demo": "http://kenwheeler.github.io/slick/", 27 | "bugs": "https://github.com/kenwheeler/slick/issues", 28 | "homepage": "https://github.com/kenwheeler/slick/", 29 | "docs": "https://github.com/kenwheeler/slick/", 30 | "download": "https://github.com/kenwheeler/slick/archive/master.zip", 31 | "dependencies": { 32 | "jquery": ">=1.7" 33 | } 34 | } -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CoffeeDoc 8 | 9 | 10 | 11 | 12 | 13 |
14 |

CoffeeDoc — Module Index

15 |
16 |
17 | 24 |
25 | 26 |
27 | 30 |
31 | 32 | 33 | 34 |
35 |
36 | 37 |
38 |
39 | 40 | 41 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2014 jQuery Foundation and other contributors 2 | http://jquery.com/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining 5 | a copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/event/alias.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + 7 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 8 | "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { 9 | 10 | // Handle event binding 11 | jQuery.fn[ name ] = function( data, fn ) { 12 | return arguments.length > 0 ? 13 | this.on( name, null, data, fn ) : 14 | this.trigger( name ); 15 | }; 16 | }); 17 | 18 | jQuery.fn.extend({ 19 | hover: function( fnOver, fnOut ) { 20 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 21 | }, 22 | 23 | bind: function( types, data, fn ) { 24 | return this.on( types, null, data, fn ); 25 | }, 26 | unbind: function( types, fn ) { 27 | return this.off( types, null, fn ); 28 | }, 29 | 30 | delegate: function( selector, types, data, fn ) { 31 | return this.on( types, selector, data, fn ); 32 | }, 33 | undelegate: function( selector, types, fn ) { 34 | // ( namespace ) or ( selector, types [, fn] ) 35 | return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); 36 | } 37 | }); 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/core/access.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Multifunctional method to get and set values of a collection 6 | // The value/s can optionally be executed if it's a function 7 | var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 8 | var i = 0, 9 | length = elems.length, 10 | bulk = key == null; 11 | 12 | // Sets many values 13 | if ( jQuery.type( key ) === "object" ) { 14 | chainable = true; 15 | for ( i in key ) { 16 | jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); 17 | } 18 | 19 | // Sets one value 20 | } else if ( value !== undefined ) { 21 | chainable = true; 22 | 23 | if ( !jQuery.isFunction( value ) ) { 24 | raw = true; 25 | } 26 | 27 | if ( bulk ) { 28 | // Bulk operations run against the entire set 29 | if ( raw ) { 30 | fn.call( elems, value ); 31 | fn = null; 32 | 33 | // ...except when executing function values 34 | } else { 35 | bulk = fn; 36 | fn = function( elem, key, value ) { 37 | return bulk.call( jQuery( elem ), value ); 38 | }; 39 | } 40 | } 41 | 42 | if ( fn ) { 43 | for ( ; i < length; i++ ) { 44 | fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); 45 | } 46 | } 47 | } 48 | 49 | return chainable ? 50 | elems : 51 | 52 | // Gets 53 | bulk ? 54 | fn.call( elems ) : 55 | length ? fn( elems[0], key ) : emptyGet; 56 | }; 57 | 58 | return access; 59 | 60 | }); 61 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/intro.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery JavaScript Library v@VERSION 3 | * http://jquery.com/ 4 | * 5 | * Includes Sizzle.js 6 | * http://sizzlejs.com/ 7 | * 8 | * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors 9 | * Released under the MIT license 10 | * http://jquery.org/license 11 | * 12 | * Date: @DATE 13 | */ 14 | 15 | (function( global, factory ) { 16 | 17 | if ( typeof module === "object" && typeof module.exports === "object" ) { 18 | // For CommonJS and CommonJS-like environments where a proper window is present, 19 | // execute the factory and get jQuery 20 | // For environments that do not inherently posses a window with a document 21 | // (such as Node.js), expose a jQuery-making factory as module.exports 22 | // This accentuates the need for the creation of a real window 23 | // e.g. var jQuery = require("jquery")(window); 24 | // See ticket #14549 for more info 25 | module.exports = global.document ? 26 | factory( global, true ) : 27 | function( w ) { 28 | if ( !w.document ) { 29 | throw new Error( "jQuery requires a window with a document" ); 30 | } 31 | return factory( w ); 32 | }; 33 | } else { 34 | factory( global ); 35 | } 36 | 37 | // Pass this if window is not defined yet 38 | }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { 39 | 40 | // Can't do this because several apps including ASP.NET trace 41 | // the stack via arguments.caller.callee and Firefox dies if 42 | // you try to trace through "use strict" call chains. (#13335) 43 | // Support: Firefox 18+ 44 | //"use strict"; 45 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; 6 | 7 | jQuery.parseJSON = function( data ) { 8 | // Attempt to parse using the native JSON parser first 9 | if ( window.JSON && window.JSON.parse ) { 10 | // Support: Android 2.3 11 | // Workaround failure to string-cast null input 12 | return window.JSON.parse( data + "" ); 13 | } 14 | 15 | var requireNonComma, 16 | depth = null, 17 | str = jQuery.trim( data + "" ); 18 | 19 | // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains 20 | // after removing valid tokens 21 | return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) { 22 | 23 | // Force termination if we see a misplaced comma 24 | if ( requireNonComma && comma ) { 25 | depth = 0; 26 | } 27 | 28 | // Perform no more replacements after returning to outermost depth 29 | if ( depth === 0 ) { 30 | return token; 31 | } 32 | 33 | // Commas must not follow "[", "{", or "," 34 | requireNonComma = open || comma; 35 | 36 | // Determine new depth 37 | // array/object open ("[" or "{"): depth += true - false (increment) 38 | // array/object close ("]" or "}"): depth += false - true (decrement) 39 | // other cases ("," or primitive): depth += true - true (numeric cast) 40 | depth += !close - !open; 41 | 42 | // Remove this token 43 | return ""; 44 | }) ) ? 45 | ( Function( "return " + str ) )() : 46 | jQuery.error( "Invalid JSON: " + data ); 47 | }; 48 | 49 | return jQuery.parseJSON; 50 | 51 | }); 52 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/effects/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/strundefined", 3 | "../var/support" 4 | ], function( strundefined, support ) { 5 | 6 | (function() { 7 | var shrinkWrapBlocksVal; 8 | 9 | support.shrinkWrapBlocks = function() { 10 | if ( shrinkWrapBlocksVal != null ) { 11 | return shrinkWrapBlocksVal; 12 | } 13 | 14 | // Will be changed later if needed. 15 | shrinkWrapBlocksVal = false; 16 | 17 | // Minified: var b,c,d 18 | var div, body, container; 19 | 20 | body = document.getElementsByTagName( "body" )[ 0 ]; 21 | if ( !body || !body.style ) { 22 | // Test fired too early or in an unsupported environment, exit. 23 | return; 24 | } 25 | 26 | // Setup 27 | div = document.createElement( "div" ); 28 | container = document.createElement( "div" ); 29 | container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; 30 | body.appendChild( container ).appendChild( div ); 31 | 32 | // Support: IE6 33 | // Check if elements with layout shrink-wrap their children 34 | if ( typeof div.style.zoom !== strundefined ) { 35 | // Reset CSS: box-sizing; display; margin; border 36 | div.style.cssText = 37 | // Support: Firefox<29, Android 2.3 38 | // Vendor-prefix box-sizing 39 | "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + 40 | "box-sizing:content-box;display:block;margin:0;border:0;" + 41 | "padding:1px;width:1px;zoom:1"; 42 | div.appendChild( document.createElement( "div" ) ).style.width = "5px"; 43 | shrinkWrapBlocksVal = div.offsetWidth !== 3; 44 | } 45 | 46 | body.removeChild( container ); 47 | 48 | return shrinkWrapBlocksVal; 49 | }; 50 | 51 | })(); 52 | 53 | return support; 54 | 55 | }); 56 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/wrap.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./core/init", 4 | "./manipulation", // clone 5 | "./traversing" // parent, contents 6 | ], function( jQuery ) { 7 | 8 | jQuery.fn.extend({ 9 | wrapAll: function( html ) { 10 | if ( jQuery.isFunction( html ) ) { 11 | return this.each(function(i) { 12 | jQuery(this).wrapAll( html.call(this, i) ); 13 | }); 14 | } 15 | 16 | if ( this[0] ) { 17 | // The elements to wrap the target around 18 | var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); 19 | 20 | if ( this[0].parentNode ) { 21 | wrap.insertBefore( this[0] ); 22 | } 23 | 24 | wrap.map(function() { 25 | var elem = this; 26 | 27 | while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { 28 | elem = elem.firstChild; 29 | } 30 | 31 | return elem; 32 | }).append( this ); 33 | } 34 | 35 | return this; 36 | }, 37 | 38 | wrapInner: function( html ) { 39 | if ( jQuery.isFunction( html ) ) { 40 | return this.each(function(i) { 41 | jQuery(this).wrapInner( html.call(this, i) ); 42 | }); 43 | } 44 | 45 | return this.each(function() { 46 | var self = jQuery( this ), 47 | contents = self.contents(); 48 | 49 | if ( contents.length ) { 50 | contents.wrapAll( html ); 51 | 52 | } else { 53 | self.append( html ); 54 | } 55 | }); 56 | }, 57 | 58 | wrap: function( html ) { 59 | var isFunction = jQuery.isFunction( html ); 60 | 61 | return this.each(function(i) { 62 | jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); 63 | }); 64 | }, 65 | 66 | unwrap: function() { 67 | return this.parent().each(function() { 68 | if ( !jQuery.nodeName( this, "body" ) ) { 69 | jQuery( this ).replaceWith( this.childNodes ); 70 | } 71 | }).end(); 72 | } 73 | }); 74 | 75 | return jQuery; 76 | }); 77 | -------------------------------------------------------------------------------- /Gulpfile.coffee: -------------------------------------------------------------------------------- 1 | ############################# 2 | gulp = require 'gulp' 3 | coffee = require 'gulp-coffee' 4 | cssmin = require 'gulp-cssmin' 5 | ecstatic = require 'ecstatic' 6 | gutil = require 'gulp-util' 7 | http = require 'http' 8 | less = require 'gulp-less' 9 | shell = require 'gulp-shell' 10 | uglify = require 'gulp-uglifyjs' 11 | ############################# 12 | gulp.task 'coffee', -> 13 | gulp 14 | .src 'src/scripts/*.coffee' 15 | .pipe coffee( bare: true ).on('error', gutil.log) 16 | .pipe gulp.dest 'src/scripts/' 17 | 18 | gulp.task 'less', -> 19 | gulp 20 | .src 'src/styles/*.less' 21 | .pipe less( compress: true ) 22 | .pipe gulp.dest 'src/styles/' 23 | ############################# 24 | gulp.task 'uglify', -> 25 | gulp 26 | .src 'dist/slick-lightbox.js' 27 | .pipe uglify 'slick-lightbox.min.js', outSourceMap: true 28 | .pipe gulp.dest 'dist/' 29 | 30 | gulp.task 'coffeedoc', shell.task(['coffeedoc src/scripts/slick-lightbox.coffee']) 31 | gulp.task 'buildGHPages', shell.task(['jade index.jade']) 32 | ############################# 33 | gulp.task 'watch', -> 34 | gulp.watch 'src/scripts/*.coffee', ['coffee'] 35 | gulp.watch 'src/styles/*.less', ['less'] 36 | gulp.watch ['index.jade', 'README.md'], ['buildGHPages'] 37 | ############################# 38 | gulp.task 'preBuild', ['coffee', 'less'], -> 39 | # Copy css and JS 40 | gulp 41 | .src ['src/styles/slick-lightbox.css', 'src/scripts/slick-lightbox.js'] 42 | .pipe gulp.dest 'dist/' 43 | gulp.task 'build', ['preBuild'], -> 44 | # Uglify, coffeedoc and gh-pages 45 | gulp.start 'uglify', 'coffeedoc', 'buildGHPages' 46 | 47 | gulp.task 'server', -> 48 | gulp.start 'coffee', 'less', 'watch' 49 | http 50 | .createServer ecstatic( root: __dirname ) 51 | .listen 9000 52 | ############################# 53 | gulp.task 'default', -> 54 | gulp.start 'server' 55 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/CONTRIBUTING.markdown: -------------------------------------------------------------------------------- 1 | ## Submitting issues 2 | 3 | ### Test case required 4 | 5 | **All bug reports and problem issues require a jsFiddle**. [Please fork this JSFiddle as a baseline](http://jsfiddle.net/L0hntr35/). 6 | 7 | + A test case clearly demonstrates the bug or issue. 8 | + It contains the bare minimum HTML, CSS, and JavaScript required to demonstrate the bug. 9 | + A link to your production site is **not** a reduced test case. 10 | 11 | Providing a test case is the best way to get your issue addressed. Without a test case, your issue may be closed. 12 | 13 | You must provide a clear and simple way to reproduce the issue with the provided demo. 14 | 15 | ## Support 16 | 17 | If you are having problems getting Slick to work, or can't figure something out, this repository's issues section is not the place to ask about it. 18 | 19 | I have set up a subreddit for Slick discussion at [reddit.com/r/slickcarousel](http://www.reddit.com/r/slickcarousel/). 20 | 21 | Please use this as an area to discuss Slick and any issues you may have. 22 | 23 | ## Feature Requests 24 | 25 | If you would like to request or propose a feature, please do so in the the Slick subreddit - [reddit.com/r/slickcarousel](http://www.reddit.com/r/slickcarousel/). 26 | 27 | ## Pull requests 28 | 29 | Contributions are welcome! That said, please be prepared to edit your pull request at request, and provide a jsFiddle of your fork working interoperably with every "mode" that Slick supports, and with varying numbers of slides, slidesToShow & slidesToScroll. Failure to do so will result in your pull request being closed. 30 | 31 | Please note that while Slick is open source, this is still my baby, and by submitting a pull request you are authorizing me to edit or modify it in any way shape or form. You will be listed in Github as a contributor, but I have and will continue to steer the direction of this project. 32 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./var/strundefined", 4 | "./var/support", 5 | "./core/init", // Needed for hasOwn support test 6 | // This is listed as a dependency for build order, but it's still optional in builds 7 | "./core/ready" 8 | ], function( jQuery, strundefined, support ) { 9 | 10 | // Support: IE<9 11 | // Iteration over object's inherited properties before its own 12 | var i; 13 | for ( i in jQuery( support ) ) { 14 | break; 15 | } 16 | support.ownLast = i !== "0"; 17 | 18 | // Note: most support tests are defined in their respective modules. 19 | // false until the test is run 20 | support.inlineBlockNeedsLayout = false; 21 | 22 | // Execute ASAP in case we need to set body.style.zoom 23 | jQuery(function() { 24 | // Minified: var a,b,c,d 25 | var val, div, body, container; 26 | 27 | body = document.getElementsByTagName( "body" )[ 0 ]; 28 | if ( !body || !body.style ) { 29 | // Return for frameset docs that don't have a body 30 | return; 31 | } 32 | 33 | // Setup 34 | div = document.createElement( "div" ); 35 | container = document.createElement( "div" ); 36 | container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; 37 | body.appendChild( container ).appendChild( div ); 38 | 39 | if ( typeof div.style.zoom !== strundefined ) { 40 | // Support: IE<8 41 | // Check if natively block-level elements act like inline-block 42 | // elements when setting their display to 'inline' and giving 43 | // them layout 44 | div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; 45 | 46 | support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; 47 | if ( val ) { 48 | // Prevent IE 6 from affecting layout for positioned elements #11048 49 | // Prevent IE from shrinking the body in IE 7 mode #12869 50 | // Support: IE<8 51 | body.style.zoom = 1; 52 | } 53 | } 54 | 55 | body.removeChild( container ); 56 | }); 57 | 58 | }); 59 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/ajax/load.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../core/parseHTML", 4 | "../ajax", 5 | "../traversing", 6 | "../manipulation", 7 | "../selector", 8 | // Optional event/alias dependency 9 | "../event/alias" 10 | ], function( jQuery ) { 11 | 12 | // Keep a copy of the old load method 13 | var _load = jQuery.fn.load; 14 | 15 | /** 16 | * Load a url into a page 17 | */ 18 | jQuery.fn.load = function( url, params, callback ) { 19 | if ( typeof url !== "string" && _load ) { 20 | return _load.apply( this, arguments ); 21 | } 22 | 23 | var selector, response, type, 24 | self = this, 25 | off = url.indexOf(" "); 26 | 27 | if ( off >= 0 ) { 28 | selector = jQuery.trim( url.slice( off, url.length ) ); 29 | url = url.slice( 0, off ); 30 | } 31 | 32 | // If it's a function 33 | if ( jQuery.isFunction( params ) ) { 34 | 35 | // We assume that it's the callback 36 | callback = params; 37 | params = undefined; 38 | 39 | // Otherwise, build a param string 40 | } else if ( params && typeof params === "object" ) { 41 | type = "POST"; 42 | } 43 | 44 | // If we have elements to modify, make the request 45 | if ( self.length > 0 ) { 46 | jQuery.ajax({ 47 | url: url, 48 | 49 | // if "type" variable is undefined, then "GET" method will be used 50 | type: type, 51 | dataType: "html", 52 | data: params 53 | }).done(function( responseText ) { 54 | 55 | // Save response for use in complete callback 56 | response = arguments; 57 | 58 | self.html( selector ? 59 | 60 | // If a selector was specified, locate the right elements in a dummy div 61 | // Exclude scripts to avoid IE 'Permission Denied' errors 62 | jQuery("
").append( jQuery.parseHTML( responseText ) ).find( selector ) : 63 | 64 | // Otherwise use the full result 65 | responseText ); 66 | 67 | }).complete( callback && function( jqXHR, status ) { 68 | self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); 69 | }); 70 | } 71 | 72 | return this; 73 | }; 74 | 75 | }); 76 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/dimensions.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./core/access", 4 | "./css" 5 | ], function( jQuery, access ) { 6 | 7 | // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 8 | jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { 9 | jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { 10 | // margin is only for outerHeight, outerWidth 11 | jQuery.fn[ funcName ] = function( margin, value ) { 12 | var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), 13 | extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); 14 | 15 | return access( this, function( elem, type, value ) { 16 | var doc; 17 | 18 | if ( jQuery.isWindow( elem ) ) { 19 | // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there 20 | // isn't a whole lot we can do. See pull request at this URL for discussion: 21 | // https://github.com/jquery/jquery/pull/764 22 | return elem.document.documentElement[ "client" + name ]; 23 | } 24 | 25 | // Get document width or height 26 | if ( elem.nodeType === 9 ) { 27 | doc = elem.documentElement; 28 | 29 | // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest 30 | // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. 31 | return Math.max( 32 | elem.body[ "scroll" + name ], doc[ "scroll" + name ], 33 | elem.body[ "offset" + name ], doc[ "offset" + name ], 34 | doc[ "client" + name ] 35 | ); 36 | } 37 | 38 | return value === undefined ? 39 | // Get width or height on the element, requesting but not forcing parseFloat 40 | jQuery.css( elem, type, extra ) : 41 | 42 | // Set width or height on the element 43 | jQuery.style( elem, type, value, extra ); 44 | }, type, chainable ? margin : undefined, chainable, null ); 45 | }; 46 | }); 47 | }); 48 | 49 | return jQuery; 50 | }); 51 | -------------------------------------------------------------------------------- /Gulpfile.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.10.0 2 | (function() { 3 | var coffee, cssmin, ecstatic, gulp, gutil, http, less, shell, uglify; 4 | 5 | gulp = require('gulp'); 6 | 7 | coffee = require('gulp-coffee'); 8 | 9 | cssmin = require('gulp-cssmin'); 10 | 11 | ecstatic = require('ecstatic'); 12 | 13 | gutil = require('gulp-util'); 14 | 15 | http = require('http'); 16 | 17 | less = require('gulp-less'); 18 | 19 | shell = require('gulp-shell'); 20 | 21 | uglify = require('gulp-uglifyjs'); 22 | 23 | gulp.task('coffee', function() { 24 | return gulp.src('src/scripts/*.coffee').pipe(coffee({ 25 | bare: true 26 | }).on('error', gutil.log)).pipe(gulp.dest('src/scripts/')); 27 | }); 28 | 29 | gulp.task('less', function() { 30 | return gulp.src('src/styles/*.less').pipe(less({ 31 | compress: true 32 | })).pipe(gulp.dest('src/styles/')); 33 | }); 34 | 35 | gulp.task('uglify', function() { 36 | return gulp.src('dist/slick-lightbox.js').pipe(uglify('slick-lightbox.min.js', { 37 | outSourceMap: true 38 | })).pipe(gulp.dest('dist/')); 39 | }); 40 | 41 | gulp.task('coffeedoc', shell.task(['coffeedoc src/scripts/slick-lightbox.coffee'])); 42 | 43 | gulp.task('buildGHPages', shell.task(['jade index.jade'])); 44 | 45 | gulp.task('watch', function() { 46 | gulp.watch('src/scripts/*.coffee', ['coffee']); 47 | gulp.watch('src/styles/*.less', ['less']); 48 | return gulp.watch(['index.jade', 'README.md'], ['buildGHPages']); 49 | }); 50 | 51 | gulp.task('preBuild', ['coffee', 'less'], function() { 52 | return gulp.src(['src/styles/slick-lightbox.css', 'src/scripts/slick-lightbox.js']).pipe(gulp.dest('dist/')); 53 | }); 54 | 55 | gulp.task('build', ['preBuild'], function() { 56 | return gulp.start('uglify', 'coffeedoc', 'buildGHPages'); 57 | }); 58 | 59 | gulp.task('server', function() { 60 | gulp.start('coffee', 'less', 'watch'); 61 | return http.createServer(ecstatic({ 62 | root: __dirname 63 | })).listen(9000); 64 | }); 65 | 66 | gulp.task('default', function() { 67 | return gulp.start('server'); 68 | }); 69 | 70 | }).call(this); 71 | -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/slick/slick.scss: -------------------------------------------------------------------------------- 1 | /* Slider */ 2 | 3 | .slick-slider { 4 | position: relative; 5 | display: block; 6 | box-sizing: border-box; 7 | -moz-box-sizing: border-box; 8 | -webkit-touch-callout: none; 9 | -webkit-user-select: none; 10 | -khtml-user-select: none; 11 | -moz-user-select: none; 12 | -ms-user-select: none; 13 | user-select: none; 14 | -ms-touch-action: pan-y; 15 | touch-action: pan-y; 16 | -webkit-tap-highlight-color: transparent; 17 | } 18 | .slick-list { 19 | position: relative; 20 | overflow: hidden; 21 | display: block; 22 | margin: 0; 23 | padding: 0; 24 | 25 | &:focus { 26 | outline: none; 27 | } 28 | 29 | &.dragging { 30 | cursor: pointer; 31 | cursor: hand; 32 | } 33 | } 34 | .slick-slider .slick-track, 35 | .slick-slider .slick-list { 36 | -webkit-transform: translate3d(0, 0, 0); 37 | -moz-transform: translate3d(0, 0, 0); 38 | -ms-transform: translate3d(0, 0, 0); 39 | -o-transform: translate3d(0, 0, 0); 40 | transform: translate3d(0, 0, 0); 41 | } 42 | 43 | .slick-track { 44 | position: relative; 45 | left: 0; 46 | top: 0; 47 | display: block; 48 | 49 | &:before, 50 | &:after { 51 | content: ""; 52 | display: table; 53 | } 54 | 55 | &:after { 56 | clear: both; 57 | } 58 | 59 | .slick-loading & { 60 | visibility: hidden; 61 | } 62 | } 63 | .slick-slide { 64 | float: left; 65 | height: 100%; 66 | min-height: 1px; 67 | [dir="rtl"] & { 68 | float: right; 69 | } 70 | img { 71 | display: block; 72 | } 73 | &.slick-loading img { 74 | display: none; 75 | } 76 | 77 | display: none; 78 | 79 | &.dragging img { 80 | pointer-events: none; 81 | } 82 | 83 | .slick-initialized & { 84 | display: block; 85 | } 86 | 87 | .slick-loading & { 88 | visibility: hidden; 89 | } 90 | 91 | .slick-vertical & { 92 | display: block; 93 | height: auto; 94 | border: 1px solid transparent; 95 | } 96 | } -------------------------------------------------------------------------------- /gh-pages/bower_components/slick-carousel/slick/fonts/slick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by Fontastic.me 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/css/defaultDisplay.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../manipulation" // appendTo 4 | ], function( jQuery ) { 5 | 6 | var iframe, 7 | elemdisplay = {}; 8 | 9 | /** 10 | * Retrieve the actual display of a element 11 | * @param {String} name nodeName of the element 12 | * @param {Object} doc Document object 13 | */ 14 | // Called only from within defaultDisplay 15 | function actualDisplay( name, doc ) { 16 | var style, 17 | elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), 18 | 19 | // getDefaultComputedStyle might be reliably used only on attached element 20 | display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? 21 | 22 | // Use of this method is a temporary fix (more like optmization) until something better comes along, 23 | // since it was removed from specification and supported only in FF 24 | style.display : jQuery.css( elem[ 0 ], "display" ); 25 | 26 | // We don't have any data stored on the element, 27 | // so use "detach" method as fast way to get rid of the element 28 | elem.detach(); 29 | 30 | return display; 31 | } 32 | 33 | /** 34 | * Try to determine the default display value of an element 35 | * @param {String} nodeName 36 | */ 37 | function defaultDisplay( nodeName ) { 38 | var doc = document, 39 | display = elemdisplay[ nodeName ]; 40 | 41 | if ( !display ) { 42 | display = actualDisplay( nodeName, doc ); 43 | 44 | // If the simple way fails, read from inside an iframe 45 | if ( display === "none" || !display ) { 46 | 47 | // Use the already-created iframe if possible 48 | iframe = (iframe || jQuery( "'+n+"
"}}(this),n=this.element.find(this.options.itemSelector),0===i||-1===i?o=t.map(n,e):(o=t.map(n.slice(i),e),t.each(n.slice(0,i),function(t,i){return o.push(e(i))}))),o},i.prototype.createModal=function(i){var n,e;return e=this.createModalItems(i),n='
\n\t
\n\t\t
'+e.join("")+'
\n\t\t\n\t
\n
',this.modalElement=t(n),t("body").append(this.modalElement)},i.prototype.initSlick=function(t){return null!=this.options.slick?"function"==typeof this.options.slick?this.slick=this.options.slick(this.modalElement):this.slick=this.modalElement.find(".slick-lightbox-slick").slick(this.options.slick):this.slick=this.modalElement.find(".slick-lightbox-slick").slick(),this.modalElement.trigger("init.slickLightbox")},i.prototype.open=function(){return this.element.trigger("show.slickLightbox"),setTimeout(function(t){return function(){return t.element.trigger("shown.slickLightbox")}}(this),this.getTransitionDuration()),this.modalElement.removeClass("slick-hide-init")},i.prototype.close=function(){return this.element.trigger("hide.slickLightbox"),setTimeout(function(t){return function(){return t.element.trigger("hidden.slickLightbox")}}(this),this.getTransitionDuration()),this.modalElement.addClass("slick-hide"),this.destroy()},i.prototype.bindEvents=function(){var i;if(i=function(t){return function(){var i;return i=t.modalElement.find(".slick-lightbox-inner").height(),t.modalElement.find(".slick-lightbox-slick-item").height(i),t.modalElement.find(".slick-lightbox-slick-img").css("max-height",Math.round(.9*i))}}(this),t(window).on("orientationchange.slickLightbox resize.slickLightbox",i),this.modalElement.on("init.slickLightbox",i),this.modalElement.on("destroy.slickLightbox",function(t){return function(){return t.destroy()}}(this)),this.element.on("destroy.slickLightbox",function(t){return function(){return t.destroy(!0)}}(this)),this.modalElement.on("click.slickLightbox touchstart.slickLightbox",".slick-lightbox-close",function(t){return function(i){return i.preventDefault(),t.close()}}(this)),(this.options.closeOnEscape||this.options.navigateByKeyboard)&&t(document).on("keydown.slickLightbox",function(t){return function(i){var n;if(n=i.keyCode?i.keyCode:i.which,t.options.navigateByKeyboard&&(37===n?t.slideSlick("left"):39===n&&t.slideSlick("right")),t.options.closeOnEscape&&27===n)return t.close()}}(this)),this.options.closeOnBackdropClick)return this.modalElement.on("click.slickLightbox touchstart.slickLightbox",".slick-lightbox-slick-img",function(t){return function(t){return t.stopPropagation()}}()),this.modalElement.on("click.slickLightbox touchstart.slickLightbox",".slick-lightbox-slick-iframe-wrap",function(t){return function(t){return t.stopPropagation()}}()),this.modalElement.on("click.slickLightbox touchstart.slickLightbox",".slick-lightbox-slick-item",function(t){return function(i){return i.preventDefault(),t.close()}}(this))},i.prototype.slideSlick=function(t){return"left"===t?this.slick.slick("slickPrev"):this.slick.slick("slickNext")},i.prototype.detectIE=function(){if(this.isIE=!1,/MSIE (\d+\.\d+);/.test(navigator.userAgent)&&new Number(RegExp.$1)<9)return this.isIE=!0},i.prototype.getElementCaption=function(i){return this.options.caption?''+function(){switch(typeof this.options.caption){case"function":return this.options.caption(i);case"string":return t(i).data(this.options.caption)}}.call(this)+"":""},i.prototype.getElementSrc=function(i){switch(typeof this.options.src){case"function":return this.options.src(i);case"string":return t(i).attr(this.options.src);default:return i.href}},i.prototype.detectImage=function(t){return null!==t.match(/\.(jpeg|jpg|gif|png)(\?.*)?$/)},i.prototype.unbindEvents=function(){return t(window).off(".slickLightbox"),t(document).off(".slickLightbox"),this.modalElement.off(".slickLightbox")},i.prototype.destroy=function(t){if(null==t&&(t=!1),this.didInit&&(this.unbindEvents(),setTimeout(function(t){return function(){return t.modalElement.remove()}}(this),this.options.destroyTimeout)),t)return this.element.off(".slickLightbox"),this.element.off(".slickLightbox",this.options.itemSelector)},i.prototype.destroyPrevious=function(){return t("body").children(".slick-lightbox").trigger("destroy.slickLightbox")},i.prototype.getTransitionDuration=function(){var t;return this.transitionDuration?this.transitionDuration:(t=this.modalElement.css("transition-duration"),this.transitionDuration=void 0===t?500:t.indexOf("ms")>-1?parseFloat(t):1e3*parseFloat(t))},i}(),n={background:"rgba(0,0,0,.8)",closeOnEscape:!0,closeOnBackdropClick:!0,destroyTimeout:500,itemSelector:"a",navigateByKeyboard:!0,src:!1,caption:!1,captionPosition:"dynamic",images:!1,slick:{}},t.fn.slickLightbox=function(e){return e=t.extend({},n,e),new i(this,e),this},t.fn.unslickLightbox=function(){return t(this).trigger("destroy.slickLightbox")}}(jQuery); 2 | //# sourceMappingURL=slick-lightbox.min.js.map -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/callbacks.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./var/rnotwhite" 4 | ], function( jQuery, rnotwhite ) { 5 | 6 | // String to Object options format cache 7 | var optionsCache = {}; 8 | 9 | // Convert String-formatted options into Object-formatted ones and store in cache 10 | function createOptions( options ) { 11 | var object = optionsCache[ options ] = {}; 12 | jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { 13 | object[ flag ] = true; 14 | }); 15 | return object; 16 | } 17 | 18 | /* 19 | * Create a callback list using the following parameters: 20 | * 21 | * options: an optional list of space-separated options that will change how 22 | * the callback list behaves or a more traditional option object 23 | * 24 | * By default a callback list will act like an event callback list and can be 25 | * "fired" multiple times. 26 | * 27 | * Possible options: 28 | * 29 | * once: will ensure the callback list can only be fired once (like a Deferred) 30 | * 31 | * memory: will keep track of previous values and will call any callback added 32 | * after the list has been fired right away with the latest "memorized" 33 | * values (like a Deferred) 34 | * 35 | * unique: will ensure a callback can only be added once (no duplicate in the list) 36 | * 37 | * stopOnFalse: interrupt callings when a callback returns false 38 | * 39 | */ 40 | jQuery.Callbacks = function( options ) { 41 | 42 | // Convert options from String-formatted to Object-formatted if needed 43 | // (we check in cache first) 44 | options = typeof options === "string" ? 45 | ( optionsCache[ options ] || createOptions( options ) ) : 46 | jQuery.extend( {}, options ); 47 | 48 | var // Flag to know if list is currently firing 49 | firing, 50 | // Last fire value (for non-forgettable lists) 51 | memory, 52 | // Flag to know if list was already fired 53 | fired, 54 | // End of the loop when firing 55 | firingLength, 56 | // Index of currently firing callback (modified by remove if needed) 57 | firingIndex, 58 | // First callback to fire (used internally by add and fireWith) 59 | firingStart, 60 | // Actual callback list 61 | list = [], 62 | // Stack of fire calls for repeatable lists 63 | stack = !options.once && [], 64 | // Fire callbacks 65 | fire = function( data ) { 66 | memory = options.memory && data; 67 | fired = true; 68 | firingIndex = firingStart || 0; 69 | firingStart = 0; 70 | firingLength = list.length; 71 | firing = true; 72 | for ( ; list && firingIndex < firingLength; firingIndex++ ) { 73 | if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { 74 | memory = false; // To prevent further calls using add 75 | break; 76 | } 77 | } 78 | firing = false; 79 | if ( list ) { 80 | if ( stack ) { 81 | if ( stack.length ) { 82 | fire( stack.shift() ); 83 | } 84 | } else if ( memory ) { 85 | list = []; 86 | } else { 87 | self.disable(); 88 | } 89 | } 90 | }, 91 | // Actual Callbacks object 92 | self = { 93 | // Add a callback or a collection of callbacks to the list 94 | add: function() { 95 | if ( list ) { 96 | // First, we save the current length 97 | var start = list.length; 98 | (function add( args ) { 99 | jQuery.each( args, function( _, arg ) { 100 | var type = jQuery.type( arg ); 101 | if ( type === "function" ) { 102 | if ( !options.unique || !self.has( arg ) ) { 103 | list.push( arg ); 104 | } 105 | } else if ( arg && arg.length && type !== "string" ) { 106 | // Inspect recursively 107 | add( arg ); 108 | } 109 | }); 110 | })( arguments ); 111 | // Do we need to add the callbacks to the 112 | // current firing batch? 113 | if ( firing ) { 114 | firingLength = list.length; 115 | // With memory, if we're not firing then 116 | // we should call right away 117 | } else if ( memory ) { 118 | firingStart = start; 119 | fire( memory ); 120 | } 121 | } 122 | return this; 123 | }, 124 | // Remove a callback from the list 125 | remove: function() { 126 | if ( list ) { 127 | jQuery.each( arguments, function( _, arg ) { 128 | var index; 129 | while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { 130 | list.splice( index, 1 ); 131 | // Handle firing indexes 132 | if ( firing ) { 133 | if ( index <= firingLength ) { 134 | firingLength--; 135 | } 136 | if ( index <= firingIndex ) { 137 | firingIndex--; 138 | } 139 | } 140 | } 141 | }); 142 | } 143 | return this; 144 | }, 145 | // Check if a given callback is in the list. 146 | // If no argument is given, return whether or not list has callbacks attached. 147 | has: function( fn ) { 148 | return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); 149 | }, 150 | // Remove all callbacks from the list 151 | empty: function() { 152 | list = []; 153 | firingLength = 0; 154 | return this; 155 | }, 156 | // Have the list do nothing anymore 157 | disable: function() { 158 | list = stack = memory = undefined; 159 | return this; 160 | }, 161 | // Is it disabled? 162 | disabled: function() { 163 | return !list; 164 | }, 165 | // Lock the list in its current state 166 | lock: function() { 167 | stack = undefined; 168 | if ( !memory ) { 169 | self.disable(); 170 | } 171 | return this; 172 | }, 173 | // Is it locked? 174 | locked: function() { 175 | return !stack; 176 | }, 177 | // Call all callbacks with the given context and arguments 178 | fireWith: function( context, args ) { 179 | if ( list && ( !fired || stack ) ) { 180 | args = args || []; 181 | args = [ context, args.slice ? args.slice() : args ]; 182 | if ( firing ) { 183 | stack.push( args ); 184 | } else { 185 | fire( args ); 186 | } 187 | } 188 | return this; 189 | }, 190 | // Call all the callbacks with the given arguments 191 | fire: function() { 192 | self.fireWith( this, arguments ); 193 | return this; 194 | }, 195 | // To know if the callbacks have already been called at least once 196 | fired: function() { 197 | return !!fired; 198 | } 199 | }; 200 | 201 | return self; 202 | }; 203 | 204 | return jQuery; 205 | }); 206 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/ajax/xhr.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../var/support", 4 | "../ajax" 5 | ], function( jQuery, support ) { 6 | 7 | // Create the request object 8 | // (This is still attached to ajaxSettings for backward compatibility) 9 | jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ? 10 | // Support: IE6+ 11 | function() { 12 | 13 | // XHR cannot access local files, always use ActiveX for that case 14 | return !this.isLocal && 15 | 16 | // Support: IE7-8 17 | // oldIE XHR does not support non-RFC2616 methods (#13240) 18 | // See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx 19 | // and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9 20 | // Although this check for six methods instead of eight 21 | // since IE also does not support "trace" and "connect" 22 | /^(get|post|head|put|delete|options)$/i.test( this.type ) && 23 | 24 | createStandardXHR() || createActiveXHR(); 25 | } : 26 | // For all other browsers, use the standard XMLHttpRequest object 27 | createStandardXHR; 28 | 29 | var xhrId = 0, 30 | xhrCallbacks = {}, 31 | xhrSupported = jQuery.ajaxSettings.xhr(); 32 | 33 | // Support: IE<10 34 | // Open requests must be manually aborted on unload (#5280) 35 | // See https://support.microsoft.com/kb/2856746 for more info 36 | if ( window.attachEvent ) { 37 | window.attachEvent( "onunload", function() { 38 | for ( var key in xhrCallbacks ) { 39 | xhrCallbacks[ key ]( undefined, true ); 40 | } 41 | }); 42 | } 43 | 44 | // Determine support properties 45 | support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); 46 | xhrSupported = support.ajax = !!xhrSupported; 47 | 48 | // Create transport if the browser can provide an xhr 49 | if ( xhrSupported ) { 50 | 51 | jQuery.ajaxTransport(function( options ) { 52 | // Cross domain only allowed if supported through XMLHttpRequest 53 | if ( !options.crossDomain || support.cors ) { 54 | 55 | var callback; 56 | 57 | return { 58 | send: function( headers, complete ) { 59 | var i, 60 | xhr = options.xhr(), 61 | id = ++xhrId; 62 | 63 | // Open the socket 64 | xhr.open( options.type, options.url, options.async, options.username, options.password ); 65 | 66 | // Apply custom fields if provided 67 | if ( options.xhrFields ) { 68 | for ( i in options.xhrFields ) { 69 | xhr[ i ] = options.xhrFields[ i ]; 70 | } 71 | } 72 | 73 | // Override mime type if needed 74 | if ( options.mimeType && xhr.overrideMimeType ) { 75 | xhr.overrideMimeType( options.mimeType ); 76 | } 77 | 78 | // X-Requested-With header 79 | // For cross-domain requests, seeing as conditions for a preflight are 80 | // akin to a jigsaw puzzle, we simply never set it to be sure. 81 | // (it can always be set on a per-request basis or even using ajaxSetup) 82 | // For same-domain requests, won't change header if already provided. 83 | if ( !options.crossDomain && !headers["X-Requested-With"] ) { 84 | headers["X-Requested-With"] = "XMLHttpRequest"; 85 | } 86 | 87 | // Set headers 88 | for ( i in headers ) { 89 | // Support: IE<9 90 | // IE's ActiveXObject throws a 'Type Mismatch' exception when setting 91 | // request header to a null-value. 92 | // 93 | // To keep consistent with other XHR implementations, cast the value 94 | // to string and ignore `undefined`. 95 | if ( headers[ i ] !== undefined ) { 96 | xhr.setRequestHeader( i, headers[ i ] + "" ); 97 | } 98 | } 99 | 100 | // Do send the request 101 | // This may raise an exception which is actually 102 | // handled in jQuery.ajax (so no try/catch here) 103 | xhr.send( ( options.hasContent && options.data ) || null ); 104 | 105 | // Listener 106 | callback = function( _, isAbort ) { 107 | var status, statusText, responses; 108 | 109 | // Was never called and is aborted or complete 110 | if ( callback && ( isAbort || xhr.readyState === 4 ) ) { 111 | // Clean up 112 | delete xhrCallbacks[ id ]; 113 | callback = undefined; 114 | xhr.onreadystatechange = jQuery.noop; 115 | 116 | // Abort manually if needed 117 | if ( isAbort ) { 118 | if ( xhr.readyState !== 4 ) { 119 | xhr.abort(); 120 | } 121 | } else { 122 | responses = {}; 123 | status = xhr.status; 124 | 125 | // Support: IE<10 126 | // Accessing binary-data responseText throws an exception 127 | // (#11426) 128 | if ( typeof xhr.responseText === "string" ) { 129 | responses.text = xhr.responseText; 130 | } 131 | 132 | // Firefox throws an exception when accessing 133 | // statusText for faulty cross-domain requests 134 | try { 135 | statusText = xhr.statusText; 136 | } catch( e ) { 137 | // We normalize with Webkit giving an empty statusText 138 | statusText = ""; 139 | } 140 | 141 | // Filter status for non standard behaviors 142 | 143 | // If the request is local and we have data: assume a success 144 | // (success with no data won't get notified, that's the best we 145 | // can do given current implementations) 146 | if ( !status && options.isLocal && !options.crossDomain ) { 147 | status = responses.text ? 200 : 404; 148 | // IE - #1450: sometimes returns 1223 when it should be 204 149 | } else if ( status === 1223 ) { 150 | status = 204; 151 | } 152 | } 153 | } 154 | 155 | // Call complete if needed 156 | if ( responses ) { 157 | complete( status, statusText, responses, xhr.getAllResponseHeaders() ); 158 | } 159 | }; 160 | 161 | if ( !options.async ) { 162 | // if we're in sync mode we fire the callback 163 | callback(); 164 | } else if ( xhr.readyState === 4 ) { 165 | // (IE6 & IE7) if it's in cache and has been 166 | // retrieved directly we need to fire the callback 167 | setTimeout( callback ); 168 | } else { 169 | // Add to the list of active xhr callbacks 170 | xhr.onreadystatechange = xhrCallbacks[ id ] = callback; 171 | } 172 | }, 173 | 174 | abort: function() { 175 | if ( callback ) { 176 | callback( undefined, true ); 177 | } 178 | } 179 | }; 180 | } 181 | }); 182 | } 183 | 184 | // Functions to create xhrs 185 | function createStandardXHR() { 186 | try { 187 | return new window.XMLHttpRequest(); 188 | } catch( e ) {} 189 | } 190 | 191 | function createActiveXHR() { 192 | try { 193 | return new window.ActiveXObject( "Microsoft.XMLHTTP" ); 194 | } catch( e ) {} 195 | } 196 | 197 | }); 198 | -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/offset.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./var/strundefined", 4 | "./core/access", 5 | "./css/var/rnumnonpx", 6 | "./css/curCSS", 7 | "./css/addGetHookIf", 8 | "./css/support", 9 | 10 | "./core/init", 11 | "./css", 12 | "./selector" // contains 13 | ], function( jQuery, strundefined, access, rnumnonpx, curCSS, addGetHookIf, support ) { 14 | 15 | // BuildExclude 16 | curCSS = curCSS.curCSS; 17 | 18 | var docElem = window.document.documentElement; 19 | 20 | /** 21 | * Gets a window from an element 22 | */ 23 | function getWindow( elem ) { 24 | return jQuery.isWindow( elem ) ? 25 | elem : 26 | elem.nodeType === 9 ? 27 | elem.defaultView || elem.parentWindow : 28 | false; 29 | } 30 | 31 | jQuery.offset = { 32 | setOffset: function( elem, options, i ) { 33 | var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, 34 | position = jQuery.css( elem, "position" ), 35 | curElem = jQuery( elem ), 36 | props = {}; 37 | 38 | // set position first, in-case top/left are set even on static elem 39 | if ( position === "static" ) { 40 | elem.style.position = "relative"; 41 | } 42 | 43 | curOffset = curElem.offset(); 44 | curCSSTop = jQuery.css( elem, "top" ); 45 | curCSSLeft = jQuery.css( elem, "left" ); 46 | calculatePosition = ( position === "absolute" || position === "fixed" ) && 47 | jQuery.inArray("auto", [ curCSSTop, curCSSLeft ] ) > -1; 48 | 49 | // need to be able to calculate position if either top or left is auto and position is either absolute or fixed 50 | if ( calculatePosition ) { 51 | curPosition = curElem.position(); 52 | curTop = curPosition.top; 53 | curLeft = curPosition.left; 54 | } else { 55 | curTop = parseFloat( curCSSTop ) || 0; 56 | curLeft = parseFloat( curCSSLeft ) || 0; 57 | } 58 | 59 | if ( jQuery.isFunction( options ) ) { 60 | options = options.call( elem, i, curOffset ); 61 | } 62 | 63 | if ( options.top != null ) { 64 | props.top = ( options.top - curOffset.top ) + curTop; 65 | } 66 | if ( options.left != null ) { 67 | props.left = ( options.left - curOffset.left ) + curLeft; 68 | } 69 | 70 | if ( "using" in options ) { 71 | options.using.call( elem, props ); 72 | } else { 73 | curElem.css( props ); 74 | } 75 | } 76 | }; 77 | 78 | jQuery.fn.extend({ 79 | offset: function( options ) { 80 | if ( arguments.length ) { 81 | return options === undefined ? 82 | this : 83 | this.each(function( i ) { 84 | jQuery.offset.setOffset( this, options, i ); 85 | }); 86 | } 87 | 88 | var docElem, win, 89 | box = { top: 0, left: 0 }, 90 | elem = this[ 0 ], 91 | doc = elem && elem.ownerDocument; 92 | 93 | if ( !doc ) { 94 | return; 95 | } 96 | 97 | docElem = doc.documentElement; 98 | 99 | // Make sure it's not a disconnected DOM node 100 | if ( !jQuery.contains( docElem, elem ) ) { 101 | return box; 102 | } 103 | 104 | // If we don't have gBCR, just use 0,0 rather than error 105 | // BlackBerry 5, iOS 3 (original iPhone) 106 | if ( typeof elem.getBoundingClientRect !== strundefined ) { 107 | box = elem.getBoundingClientRect(); 108 | } 109 | win = getWindow( doc ); 110 | return { 111 | top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ), 112 | left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 ) 113 | }; 114 | }, 115 | 116 | position: function() { 117 | if ( !this[ 0 ] ) { 118 | return; 119 | } 120 | 121 | var offsetParent, offset, 122 | parentOffset = { top: 0, left: 0 }, 123 | elem = this[ 0 ]; 124 | 125 | // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent 126 | if ( jQuery.css( elem, "position" ) === "fixed" ) { 127 | // we assume that getBoundingClientRect is available when computed position is fixed 128 | offset = elem.getBoundingClientRect(); 129 | } else { 130 | // Get *real* offsetParent 131 | offsetParent = this.offsetParent(); 132 | 133 | // Get correct offsets 134 | offset = this.offset(); 135 | if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { 136 | parentOffset = offsetParent.offset(); 137 | } 138 | 139 | // Add offsetParent borders 140 | parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); 141 | parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); 142 | } 143 | 144 | // Subtract parent offsets and element margins 145 | // note: when an element has margin: auto the offsetLeft and marginLeft 146 | // are the same in Safari causing offset.left to incorrectly be 0 147 | return { 148 | top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), 149 | left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true) 150 | }; 151 | }, 152 | 153 | offsetParent: function() { 154 | return this.map(function() { 155 | var offsetParent = this.offsetParent || docElem; 156 | 157 | while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) { 158 | offsetParent = offsetParent.offsetParent; 159 | } 160 | return offsetParent || docElem; 161 | }); 162 | } 163 | }); 164 | 165 | // Create scrollLeft and scrollTop methods 166 | jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { 167 | var top = /Y/.test( prop ); 168 | 169 | jQuery.fn[ method ] = function( val ) { 170 | return access( this, function( elem, method, val ) { 171 | var win = getWindow( elem ); 172 | 173 | if ( val === undefined ) { 174 | return win ? (prop in win) ? win[ prop ] : 175 | win.document.documentElement[ method ] : 176 | elem[ method ]; 177 | } 178 | 179 | if ( win ) { 180 | win.scrollTo( 181 | !top ? val : jQuery( win ).scrollLeft(), 182 | top ? val : jQuery( win ).scrollTop() 183 | ); 184 | 185 | } else { 186 | elem[ method ] = val; 187 | } 188 | }, method, val, arguments.length, null ); 189 | }; 190 | }); 191 | 192 | // Add the top/left cssHooks using jQuery.fn.position 193 | // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 194 | // getComputedStyle returns percent when specified for top/left/bottom/right 195 | // rather than make the css module depend on the offset module, we just check for it here 196 | jQuery.each( [ "top", "left" ], function( i, prop ) { 197 | jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, 198 | function( elem, computed ) { 199 | if ( computed ) { 200 | computed = curCSS( elem, prop ); 201 | // if curCSS returns percentage, fallback to offset 202 | return rnumnonpx.test( computed ) ? 203 | jQuery( elem ).position()[ prop ] + "px" : 204 | computed; 205 | } 206 | } 207 | ); 208 | }); 209 | 210 | return jQuery; 211 | }); 212 | -------------------------------------------------------------------------------- /gh-pages/javascripts/tablesaw.stackonly.js: -------------------------------------------------------------------------------- 1 | /*! Tablesaw - v1.0.4 - 2015-02-19 2 | * https://github.com/filamentgroup/tablesaw 3 | * Copyright (c) 2015 Filament Group; Licensed MIT */ 4 | ;(function( $ ) { 5 | var div = document.createElement('div'), 6 | all = div.getElementsByTagName('i'), 7 | $doc = $( document.documentElement ); 8 | 9 | div.innerHTML = ''; 10 | if( all[ 0 ] ) { 11 | $doc.addClass( 'ie-lte8' ); 12 | } 13 | 14 | // Cut the mustard 15 | if( !( 'querySelector' in document ) || 16 | ( window.blackberry && !window.WebKitPoint ) || 17 | window.operamini ) { 18 | return; 19 | } else { 20 | $doc.addClass( 'tablesaw-enhanced' ); 21 | 22 | // DOM-ready auto-init of plugins. 23 | // Many plugins bind to an "enhance" event to init themselves on dom ready, or when new markup is inserted into the DOM 24 | $( function(){ 25 | $( document ).trigger( "enhance.tablesaw" ); 26 | }); 27 | } 28 | 29 | })( jQuery ); 30 | /* 31 | * tablesaw: A set of plugins for responsive tables 32 | * Stack and Column Toggle tables 33 | * Copyright (c) 2013 Filament Group, Inc. 34 | * MIT License 35 | */ 36 | 37 | if( typeof Tablesaw === "undefined" ) { 38 | Tablesaw = { 39 | i18n: { 40 | modes: [ 'Stack', 'Swipe', 'Toggle' ], 41 | columns: 'Columns', 42 | columnBtnText: 'Columns', 43 | columnsDialogError: 'No eligible columns.', 44 | sort: 'Sort' 45 | } 46 | }; 47 | } 48 | if( !Tablesaw.config ) { 49 | Tablesaw.config = {}; 50 | } 51 | 52 | ;(function( $ ) { 53 | var pluginName = "table", 54 | classes = { 55 | toolbar: "tablesaw-bar" 56 | }, 57 | events = { 58 | create: "tablesawcreate", 59 | destroy: "tablesawdestroy", 60 | refresh: "tablesawrefresh" 61 | }, 62 | defaultMode = "stack", 63 | initSelector = "table[data-tablesaw-mode],table[data-tablesaw-sortable]"; 64 | 65 | var Table = function( element ) { 66 | if( !element ) { 67 | throw new Error( "Tablesaw requires an element." ); 68 | } 69 | 70 | this.table = element; 71 | this.$table = $( element ); 72 | 73 | this.mode = this.$table.attr( "data-tablesaw-mode" ) || defaultMode; 74 | 75 | this.init(); 76 | }; 77 | 78 | Table.prototype.init = function() { 79 | // assign an id if there is none 80 | if ( !this.$table.attr( "id" ) ) { 81 | this.$table.attr( "id", pluginName + "-" + Math.round( Math.random() * 10000 ) ); 82 | } 83 | 84 | this.createToolbar(); 85 | 86 | var colstart = this._initCells(); 87 | 88 | this.$table.trigger( events.create, [ this, colstart ] ); 89 | }; 90 | 91 | Table.prototype._initCells = function() { 92 | var colstart, 93 | thrs = this.table.querySelectorAll( "thead tr" ), 94 | self = this; 95 | 96 | $( thrs ).each( function(){ 97 | var coltally = 0; 98 | 99 | $( this ).children().each( function(){ 100 | var span = parseInt( this.getAttribute( "colspan" ), 10 ), 101 | sel = ":nth-child(" + ( coltally + 1 ) + ")"; 102 | 103 | colstart = coltally + 1; 104 | 105 | if( span ){ 106 | for( var k = 0; k < span - 1; k++ ){ 107 | coltally++; 108 | sel += ", :nth-child(" + ( coltally + 1 ) + ")"; 109 | } 110 | } 111 | 112 | // Store "cells" data on header as a reference to all cells in the same column as this TH 113 | this.cells = self.$table.find("tr").not( $( thrs ).eq( 0 ) ).not( this ).children( sel ); 114 | coltally++; 115 | }); 116 | }); 117 | 118 | return colstart; 119 | }; 120 | 121 | Table.prototype.refresh = function() { 122 | this._initCells(); 123 | 124 | this.$table.trigger( events.refresh ); 125 | }; 126 | 127 | Table.prototype.createToolbar = function() { 128 | // Insert the toolbar 129 | // TODO move this into a separate component 130 | var $toolbar = this.$table.prev( '.' + classes.toolbar ); 131 | if( !$toolbar.length ) { 132 | $toolbar = $( '
' ) 133 | .addClass( classes.toolbar ) 134 | .insertBefore( this.$table ); 135 | } 136 | this.$toolbar = $toolbar; 137 | 138 | if( this.mode ) { 139 | this.$toolbar.addClass( 'mode-' + this.mode ); 140 | } 141 | }; 142 | 143 | Table.prototype.destroy = function() { 144 | // Don’t remove the toolbar. Some of the table features are not yet destroy-friendly. 145 | this.$table.prev( '.' + classes.toolbar ).each(function() { 146 | this.className = this.className.replace( /\bmode\-\w*\b/gi, '' ); 147 | }); 148 | 149 | var tableId = this.$table.attr( 'id' ); 150 | $( document ).unbind( "." + tableId ); 151 | $( window ).unbind( "." + tableId ); 152 | 153 | // other plugins 154 | this.$table.trigger( events.destroy, [ this ] ); 155 | 156 | this.$table.removeAttr( 'data-tablesaw-mode' ); 157 | 158 | this.$table.removeData( pluginName ); 159 | }; 160 | 161 | // Collection method. 162 | $.fn[ pluginName ] = function() { 163 | return this.each( function() { 164 | var $t = $( this ); 165 | 166 | if( $t.data( pluginName ) ){ 167 | return; 168 | } 169 | 170 | var table = new Table( this ); 171 | $t.data( pluginName, table ); 172 | }); 173 | }; 174 | 175 | $( document ).on( "enhance.tablesaw", function( e ) { 176 | $( e.target ).find( initSelector )[ pluginName ](); 177 | }); 178 | 179 | }( jQuery )); 180 | 181 | ;(function( win, $, undefined ){ 182 | 183 | var classes = { 184 | stackTable: 'tablesaw-stack', 185 | cellLabels: 'tablesaw-cell-label', 186 | cellContentLabels: 'tablesaw-cell-content' 187 | }; 188 | 189 | var data = { 190 | obj: 'tablesaw-stack' 191 | }; 192 | 193 | var attrs = { 194 | labelless: 'data-tablesaw-no-labels', 195 | hideempty: 'data-tablesaw-hide-empty' 196 | }; 197 | 198 | var Stack = function( element ) { 199 | 200 | this.$table = $( element ); 201 | 202 | this.labelless = this.$table.is( '[' + attrs.labelless + ']' ); 203 | this.hideempty = this.$table.is( '[' + attrs.hideempty + ']' ); 204 | 205 | if( !this.labelless ) { 206 | // allHeaders references headers, plus all THs in the thead, which may include several rows, or not 207 | this.allHeaders = this.$table.find( "th" ); 208 | } 209 | 210 | this.$table.data( data.obj, this ); 211 | }; 212 | 213 | Stack.prototype.init = function( colstart ) { 214 | this.$table.addClass( classes.stackTable ); 215 | 216 | if( this.labelless ) { 217 | return; 218 | } 219 | 220 | // get headers in reverse order so that top-level headers are appended last 221 | var reverseHeaders = $( this.allHeaders ); 222 | var hideempty = this.hideempty; 223 | 224 | // create the hide/show toggles 225 | reverseHeaders.each(function(){ 226 | var $t = $( this ), 227 | $cells = $( this.cells ).filter(function() { 228 | return !$( this ).parent().is( "[" + attrs.labelless + "]" ) && ( !hideempty || !$( this ).is( ":empty" ) ); 229 | }), 230 | hierarchyClass = $cells.not( this ).filter( "thead th" ).length && " tablesaw-cell-label-top", 231 | // TODO reduce coupling with sortable 232 | $sortableButton = $t.find( ".tablesaw-sortable-btn" ), 233 | html = $sortableButton.length ? $sortableButton.html() : $t.html(); 234 | 235 | if( html !== "" ){ 236 | if( hierarchyClass ){ 237 | var iteration = parseInt( $( this ).attr( "colspan" ), 10 ), 238 | filter = ""; 239 | 240 | if( iteration ){ 241 | filter = "td:nth-child("+ iteration +"n + " + ( colstart ) +")"; 242 | } 243 | $cells.filter( filter ).prepend( "" + html + "" ); 244 | } else { 245 | $cells.wrapInner( "" ); 246 | $cells.prepend( "" + html + "" ); 247 | } 248 | } 249 | }); 250 | }; 251 | 252 | Stack.prototype.destroy = function() { 253 | this.$table.removeClass( classes.stackTable ); 254 | this.$table.find( '.' + classes.cellLabels ).remove(); 255 | this.$table.find( '.' + classes.cellContentLabels ).each(function() { 256 | $( this ).replaceWith( this.childNodes ); 257 | }); 258 | }; 259 | 260 | // on tablecreate, init 261 | $( document ).on( "tablesawcreate", function( e, Tablesaw, colstart ){ 262 | if( Tablesaw.mode === 'stack' ){ 263 | var table = new Stack( Tablesaw.table ); 264 | table.init( colstart ); 265 | } 266 | 267 | } ); 268 | 269 | $( document ).on( "tablesawdestroy", function( e, Tablesaw ){ 270 | 271 | if( Tablesaw.mode === 'stack' ){ 272 | $( Tablesaw.table ).data( data.obj ).destroy(); 273 | } 274 | 275 | } ); 276 | 277 | }( this, jQuery )); -------------------------------------------------------------------------------- /gh-pages/bower_components/jquery/src/attributes/attr.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../var/rnotwhite", 4 | "../var/strundefined", 5 | "../core/access", 6 | "./support", 7 | "./val", 8 | "../selector" 9 | ], function( jQuery, rnotwhite, strundefined, access, support ) { 10 | 11 | var nodeHook, boolHook, 12 | attrHandle = jQuery.expr.attrHandle, 13 | ruseDefault = /^(?:checked|selected)$/i, 14 | getSetAttribute = support.getSetAttribute, 15 | getSetInput = support.input; 16 | 17 | jQuery.fn.extend({ 18 | attr: function( name, value ) { 19 | return access( this, jQuery.attr, name, value, arguments.length > 1 ); 20 | }, 21 | 22 | removeAttr: function( name ) { 23 | return this.each(function() { 24 | jQuery.removeAttr( this, name ); 25 | }); 26 | } 27 | }); 28 | 29 | jQuery.extend({ 30 | attr: function( elem, name, value ) { 31 | var hooks, ret, 32 | nType = elem.nodeType; 33 | 34 | // don't get/set attributes on text, comment and attribute nodes 35 | if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { 36 | return; 37 | } 38 | 39 | // Fallback to prop when attributes are not supported 40 | if ( typeof elem.getAttribute === strundefined ) { 41 | return jQuery.prop( elem, name, value ); 42 | } 43 | 44 | // All attributes are lowercase 45 | // Grab necessary hook if one is defined 46 | if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 47 | name = name.toLowerCase(); 48 | hooks = jQuery.attrHooks[ name ] || 49 | ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); 50 | } 51 | 52 | if ( value !== undefined ) { 53 | 54 | if ( value === null ) { 55 | jQuery.removeAttr( elem, name ); 56 | 57 | } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { 58 | return ret; 59 | 60 | } else { 61 | elem.setAttribute( name, value + "" ); 62 | return value; 63 | } 64 | 65 | } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { 66 | return ret; 67 | 68 | } else { 69 | ret = jQuery.find.attr( elem, name ); 70 | 71 | // Non-existent attributes return null, we normalize to undefined 72 | return ret == null ? 73 | undefined : 74 | ret; 75 | } 76 | }, 77 | 78 | removeAttr: function( elem, value ) { 79 | var name, propName, 80 | i = 0, 81 | attrNames = value && value.match( rnotwhite ); 82 | 83 | if ( attrNames && elem.nodeType === 1 ) { 84 | while ( (name = attrNames[i++]) ) { 85 | propName = jQuery.propFix[ name ] || name; 86 | 87 | // Boolean attributes get special treatment (#10870) 88 | if ( jQuery.expr.match.bool.test( name ) ) { 89 | // Set corresponding property to false 90 | if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { 91 | elem[ propName ] = false; 92 | // Support: IE<9 93 | // Also clear defaultChecked/defaultSelected (if appropriate) 94 | } else { 95 | elem[ jQuery.camelCase( "default-" + name ) ] = 96 | elem[ propName ] = false; 97 | } 98 | 99 | // See #9699 for explanation of this approach (setting first, then removal) 100 | } else { 101 | jQuery.attr( elem, name, "" ); 102 | } 103 | 104 | elem.removeAttribute( getSetAttribute ? name : propName ); 105 | } 106 | } 107 | }, 108 | 109 | attrHooks: { 110 | type: { 111 | set: function( elem, value ) { 112 | if ( !support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { 113 | // Setting the type on a radio button after the value resets the value in IE6-9 114 | // Reset value to default in case type is set after value during creation 115 | var val = elem.value; 116 | elem.setAttribute( "type", value ); 117 | if ( val ) { 118 | elem.value = val; 119 | } 120 | return value; 121 | } 122 | } 123 | } 124 | } 125 | }); 126 | 127 | // Hook for boolean attributes 128 | boolHook = { 129 | set: function( elem, value, name ) { 130 | if ( value === false ) { 131 | // Remove boolean attributes when set to false 132 | jQuery.removeAttr( elem, name ); 133 | } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { 134 | // IE<8 needs the *property* name 135 | elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); 136 | 137 | // Use defaultChecked and defaultSelected for oldIE 138 | } else { 139 | elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; 140 | } 141 | 142 | return name; 143 | } 144 | }; 145 | 146 | // Retrieve booleans specially 147 | jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { 148 | 149 | var getter = attrHandle[ name ] || jQuery.find.attr; 150 | 151 | attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? 152 | function( elem, name, isXML ) { 153 | var ret, handle; 154 | if ( !isXML ) { 155 | // Avoid an infinite loop by temporarily removing this function from the getter 156 | handle = attrHandle[ name ]; 157 | attrHandle[ name ] = ret; 158 | ret = getter( elem, name, isXML ) != null ? 159 | name.toLowerCase() : 160 | null; 161 | attrHandle[ name ] = handle; 162 | } 163 | return ret; 164 | } : 165 | function( elem, name, isXML ) { 166 | if ( !isXML ) { 167 | return elem[ jQuery.camelCase( "default-" + name ) ] ? 168 | name.toLowerCase() : 169 | null; 170 | } 171 | }; 172 | }); 173 | 174 | // fix oldIE attroperties 175 | if ( !getSetInput || !getSetAttribute ) { 176 | jQuery.attrHooks.value = { 177 | set: function( elem, value, name ) { 178 | if ( jQuery.nodeName( elem, "input" ) ) { 179 | // Does not return so that setAttribute is also used 180 | elem.defaultValue = value; 181 | } else { 182 | // Use nodeHook if defined (#1954); otherwise setAttribute is fine 183 | return nodeHook && nodeHook.set( elem, value, name ); 184 | } 185 | } 186 | }; 187 | } 188 | 189 | // IE6/7 do not support getting/setting some attributes with get/setAttribute 190 | if ( !getSetAttribute ) { 191 | 192 | // Use this for any attribute in IE6/7 193 | // This fixes almost every IE6/7 issue 194 | nodeHook = { 195 | set: function( elem, value, name ) { 196 | // Set the existing or create a new attribute node 197 | var ret = elem.getAttributeNode( name ); 198 | if ( !ret ) { 199 | elem.setAttributeNode( 200 | (ret = elem.ownerDocument.createAttribute( name )) 201 | ); 202 | } 203 | 204 | ret.value = value += ""; 205 | 206 | // Break association with cloned elements by also using setAttribute (#9646) 207 | if ( name === "value" || value === elem.getAttribute( name ) ) { 208 | return value; 209 | } 210 | } 211 | }; 212 | 213 | // Some attributes are constructed with empty-string values when not defined 214 | attrHandle.id = attrHandle.name = attrHandle.coords = 215 | function( elem, name, isXML ) { 216 | var ret; 217 | if ( !isXML ) { 218 | return (ret = elem.getAttributeNode( name )) && ret.value !== "" ? 219 | ret.value : 220 | null; 221 | } 222 | }; 223 | 224 | // Fixing value retrieval on a button requires this module 225 | jQuery.valHooks.button = { 226 | get: function( elem, name ) { 227 | var ret = elem.getAttributeNode( name ); 228 | if ( ret && ret.specified ) { 229 | return ret.value; 230 | } 231 | }, 232 | set: nodeHook.set 233 | }; 234 | 235 | // Set contenteditable to false on removals(#10429) 236 | // Setting to empty string throws an error as an invalid value 237 | jQuery.attrHooks.contenteditable = { 238 | set: function( elem, value, name ) { 239 | nodeHook.set( elem, value === "" ? false : value, name ); 240 | } 241 | }; 242 | 243 | // Set width and height to auto instead of 0 on empty string( Bug #8150 ) 244 | // This is for removals 245 | jQuery.each([ "width", "height" ], function( i, name ) { 246 | jQuery.attrHooks[ name ] = { 247 | set: function( elem, value ) { 248 | if ( value === "" ) { 249 | elem.setAttribute( name, "auto" ); 250 | return value; 251 | } 252 | } 253 | }; 254 | }); 255 | } 256 | 257 | if ( !support.style ) { 258 | jQuery.attrHooks.style = { 259 | get: function( elem ) { 260 | // Return undefined in the case of empty string 261 | // Note: IE uppercases css property names, but if we were to .toLowerCase() 262 | // .cssText, that would destroy case senstitivity in URL's, like in "background" 263 | return elem.style.cssText || undefined; 264 | }, 265 | set: function( elem, value ) { 266 | return ( elem.style.cssText = value + "" ); 267 | } 268 | }; 269 | } 270 | 271 | }); 272 | --------------------------------------------------------------------------------