foundation6-jekyll-base 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +2 -0
- data/_includes/footer.html +1 -0
- data/_includes/head.html +16 -0
- data/_includes/header.html +1 -0
- data/_includes/javascripts.html +4 -0
- data/_layouts/default.html +18 -0
- data/_layouts/home.html +26 -0
- data/_layouts/page.html +15 -0
- data/_layouts/post.html +25 -0
- data/_sass/_vendor/normalize-scss/sass/_normalize.scss +3 -0
- data/_sass/_vendor/normalize-scss/sass/normalize/_import-now.scss +11 -0
- data/_sass/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +676 -0
- data/_sass/_vendor/normalize-scss/sass/normalize/_variables.scss +36 -0
- data/_sass/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +61 -0
- data/_sass/_vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
- data/_sass/_vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
- data/_sass/_vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
- data/_sass/_vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
- data/_sass/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
- data/_sass/_vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
- data/_sass/foundation/_global.scss +219 -0
- data/_sass/foundation/components/_accordion-menu.scss +36 -0
- data/_sass/foundation/components/_accordion.scss +150 -0
- data/_sass/foundation/components/_badge.scss +63 -0
- data/_sass/foundation/components/_breadcrumbs.scss +97 -0
- data/_sass/foundation/components/_button-group.scss +249 -0
- data/_sass/foundation/components/_button.scss +303 -0
- data/_sass/foundation/components/_callout.scss +106 -0
- data/_sass/foundation/components/_card.scss +121 -0
- data/_sass/foundation/components/_close-button.scss +102 -0
- data/_sass/foundation/components/_drilldown.scss +93 -0
- data/_sass/foundation/components/_dropdown-menu.scss +226 -0
- data/_sass/foundation/components/_dropdown.scss +72 -0
- data/_sass/foundation/components/_flex-video.scss +1 -0
- data/_sass/foundation/components/_flex.scss +28 -0
- data/_sass/foundation/components/_float.scss +27 -0
- data/_sass/foundation/components/_label.scss +64 -0
- data/_sass/foundation/components/_media-object.scss +114 -0
- data/_sass/foundation/components/_menu-icon.scss +9 -0
- data/_sass/foundation/components/_menu.scss +371 -0
- data/_sass/foundation/components/_off-canvas.scss +329 -0
- data/_sass/foundation/components/_orbit.scss +196 -0
- data/_sass/foundation/components/_pagination.scss +193 -0
- data/_sass/foundation/components/_progress-bar.scss +64 -0
- data/_sass/foundation/components/_responsive-embed.scss +67 -0
- data/_sass/foundation/components/_reveal.scss +178 -0
- data/_sass/foundation/components/_slider.scss +138 -0
- data/_sass/foundation/components/_sticky.scss +38 -0
- data/_sass/foundation/components/_switch.scss +247 -0
- data/_sass/foundation/components/_table.scss +329 -0
- data/_sass/foundation/components/_tabs.scss +196 -0
- data/_sass/foundation/components/_thumbnail.scss +67 -0
- data/_sass/foundation/components/_title-bar.scss +84 -0
- data/_sass/foundation/components/_tooltip.scss +107 -0
- data/_sass/foundation/components/_top-bar.scss +173 -0
- data/_sass/foundation/components/_visibility.scss +132 -0
- data/_sass/foundation/forms/_checkbox.scss +41 -0
- data/_sass/foundation/forms/_error.scss +88 -0
- data/_sass/foundation/forms/_fieldset.scss +54 -0
- data/_sass/foundation/forms/_forms.scss +34 -0
- data/_sass/foundation/forms/_help-text.scss +30 -0
- data/_sass/foundation/forms/_input-group.scss +135 -0
- data/_sass/foundation/forms/_label.scss +50 -0
- data/_sass/foundation/forms/_meter.scss +110 -0
- data/_sass/foundation/forms/_progress.scss +94 -0
- data/_sass/foundation/forms/_range.scss +149 -0
- data/_sass/foundation/forms/_select.scss +85 -0
- data/_sass/foundation/forms/_text.scss +170 -0
- data/_sass/foundation/foundation.scss +118 -0
- data/_sass/foundation/grid/_classes.scss +176 -0
- data/_sass/foundation/grid/_column.scss +112 -0
- data/_sass/foundation/grid/_flex-grid.scss +307 -0
- data/_sass/foundation/grid/_grid.scss +44 -0
- data/_sass/foundation/grid/_gutter.scss +82 -0
- data/_sass/foundation/grid/_layout.scss +76 -0
- data/_sass/foundation/grid/_position.scss +76 -0
- data/_sass/foundation/grid/_row.scss +99 -0
- data/_sass/foundation/grid/_size.scss +24 -0
- data/_sass/foundation/settings/_settings.scss +621 -0
- data/_sass/foundation/typography/_alignment.scss +22 -0
- data/_sass/foundation/typography/_base.scss +509 -0
- data/_sass/foundation/typography/_helpers.scss +78 -0
- data/_sass/foundation/typography/_print.scss +81 -0
- data/_sass/foundation/typography/_typography.scss +26 -0
- data/_sass/foundation/util/_breakpoint.scss +281 -0
- data/_sass/foundation/util/_color.scss +126 -0
- data/_sass/foundation/util/_direction.scss +31 -0
- data/_sass/foundation/util/_flex.scss +85 -0
- data/_sass/foundation/util/_math.scss +72 -0
- data/_sass/foundation/util/_mixins.scss +276 -0
- data/_sass/foundation/util/_selector.scss +41 -0
- data/_sass/foundation/util/_unit.scss +152 -0
- data/_sass/foundation/util/_util.scss +13 -0
- data/_sass/foundation/util/_value.scss +140 -0
- data/assets/js/app.js +1 -0
- data/assets/js/vendor/foundation/foundation.d.ts +496 -0
- data/assets/js/vendor/foundation/foundation.js +10207 -0
- data/assets/js/vendor/foundation/foundation.min.js +4 -0
- data/assets/js/vendor/foundation/plugins/foundation.abide.js +637 -0
- data/assets/js/vendor/foundation/plugins/foundation.abide.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.accordion.js +252 -0
- data/assets/js/vendor/foundation/plugins/foundation.accordion.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.accordionMenu.js +318 -0
- data/assets/js/vendor/foundation/plugins/foundation.accordionMenu.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.core.js +386 -0
- data/assets/js/vendor/foundation/plugins/foundation.core.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.drilldown.js +565 -0
- data/assets/js/vendor/foundation/plugins/foundation.drilldown.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.dropdown.js +465 -0
- data/assets/js/vendor/foundation/plugins/foundation.dropdown.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.dropdownMenu.js +486 -0
- data/assets/js/vendor/foundation/plugins/foundation.dropdownMenu.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.equalizer.js +374 -0
- data/assets/js/vendor/foundation/plugins/foundation.equalizer.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.interchange.js +233 -0
- data/assets/js/vendor/foundation/plugins/foundation.interchange.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.magellan.js +285 -0
- data/assets/js/vendor/foundation/plugins/foundation.magellan.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.offcanvas.js +474 -0
- data/assets/js/vendor/foundation/plugins/foundation.offcanvas.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.orbit.js +566 -0
- data/assets/js/vendor/foundation/plugins/foundation.orbit.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.responsiveMenu.js +169 -0
- data/assets/js/vendor/foundation/plugins/foundation.responsiveMenu.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.responsiveToggle.js +177 -0
- data/assets/js/vendor/foundation/plugins/foundation.responsiveToggle.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.reveal.js +633 -0
- data/assets/js/vendor/foundation/plugins/foundation.reveal.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.slider.js +762 -0
- data/assets/js/vendor/foundation/plugins/foundation.slider.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.sticky.js +518 -0
- data/assets/js/vendor/foundation/plugins/foundation.sticky.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.tabs.js +512 -0
- data/assets/js/vendor/foundation/plugins/foundation.tabs.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.toggler.js +169 -0
- data/assets/js/vendor/foundation/plugins/foundation.toggler.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.tooltip.js +492 -0
- data/assets/js/vendor/foundation/plugins/foundation.tooltip.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.box.js +196 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.box.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.keyboard.js +163 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.keyboard.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.mediaQuery.js +233 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.mediaQuery.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.motion.js +103 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.motion.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.nest.js +74 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.nest.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.timerAndImageLoader.js +90 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.timerAndImageLoader.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.touch.js +352 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.touch.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.triggers.js +261 -0
- data/assets/js/vendor/foundation/plugins/foundation.util.triggers.min.js +1 -0
- data/assets/js/vendor/foundation/plugins/foundation.zf.responsiveAccordionTabs.js +262 -0
- data/assets/js/vendor/foundation/plugins/foundation.zf.responsiveAccordionTabs.min.js +1 -0
- data/assets/main.scss +6 -0
- metadata +232 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function e(e,t){for(var o=0;o<t.length;o++){var s=t[o];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,o,s){return o&&e(t.prototype,o),s&&e(t,s),t}}();!function(e){var t=function(){function t(o,s){_classCallCheck(this,t),this.$element=o,this.options=e.extend({},t.defaults,this.$element.data(),s),this.$lastTrigger=e(),this.$triggers=e(),this._init(),this._events(),Foundation.registerPlugin(this,"OffCanvas"),Foundation.Keyboard.register("OffCanvas",{ESCAPE:"close"})}return _createClass(t,[{key:"_init",value:function(){var t=this.$element.attr("id");if(this.$element.attr("aria-hidden","true"),this.$element.addClass("is-transition-"+this.options.transition),this.$triggers=e(document).find('[data-open="'+t+'"], [data-close="'+t+'"], [data-toggle="'+t+'"]').attr("aria-expanded","false").attr("aria-controls",t),this.options.contentOverlay===!0){var o=document.createElement("div"),s="fixed"===e(this.$element).css("position")?"is-overlay-fixed":"is-overlay-absolute";o.setAttribute("class","js-off-canvas-overlay "+s),this.$overlay=e(o),"is-overlay-fixed"===s?e("body").append(this.$overlay):this.$element.siblings("[data-off-canvas-content]").append(this.$overlay)}this.options.isRevealed=this.options.isRevealed||new RegExp(this.options.revealClass,"g").test(this.$element[0].className),this.options.isRevealed===!0&&(this.options.revealOn=this.options.revealOn||this.$element[0].className.match(/(reveal-for-medium|reveal-for-large)/g)[0].split("-")[2],this._setMQChecker()),!this.options.transitionTime==!0&&(this.options.transitionTime=1e3*parseFloat(window.getComputedStyle(e("[data-off-canvas]")[0]).transitionDuration))}},{key:"_events",value:function(){if(this.$element.off(".zf.trigger .zf.offcanvas").on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"keydown.zf.offcanvas":this._handleKeyboard.bind(this)}),this.options.closeOnClick===!0){var t=this.options.contentOverlay?this.$overlay:e("[data-off-canvas-content]");t.on({"click.zf.offcanvas":this.close.bind(this)})}}},{key:"_setMQChecker",value:function(){var t=this;e(window).on("changed.zf.mediaquery",function(){Foundation.MediaQuery.atLeast(t.options.revealOn)?t.reveal(!0):t.reveal(!1)}).one("load.zf.offcanvas",function(){Foundation.MediaQuery.atLeast(t.options.revealOn)&&t.reveal(!0)})}},{key:"reveal",value:function(e){var t=this.$element.find("[data-close]");e?(this.close(),this.isRevealed=!0,this.$element.attr("aria-hidden","false"),this.$element.off("open.zf.trigger toggle.zf.trigger"),t.length&&t.hide()):(this.isRevealed=!1,this.$element.attr("aria-hidden","true"),this.$element.on({"open.zf.trigger":this.open.bind(this),"toggle.zf.trigger":this.toggle.bind(this)}),t.length&&t.show())}},{key:"_stopScrolling",value:function(e){return!1}},{key:"_recordScrollable",value:function(e){var t=this;t.scrollHeight!==t.clientHeight&&(0===t.scrollTop&&(t.scrollTop=1),t.scrollTop===t.scrollHeight-t.clientHeight&&(t.scrollTop=t.scrollHeight-t.clientHeight-1)),t.allowUp=t.scrollTop>0,t.allowDown=t.scrollTop<t.scrollHeight-t.clientHeight,t.lastY=e.originalEvent.pageY}},{key:"_stopScrollPropagation",value:function(e){var t=this,o=e.pageY<t.lastY,s=!o;t.lastY=e.pageY,o&&t.allowUp||s&&t.allowDown?e.stopPropagation():e.preventDefault()}},{key:"open",value:function(t,o){if(!this.$element.hasClass("is-open")&&!this.isRevealed){var s=this;o&&(this.$lastTrigger=o),"top"===this.options.forceTo?window.scrollTo(0,0):"bottom"===this.options.forceTo&&window.scrollTo(0,document.body.scrollHeight),s.$element.addClass("is-open"),this.$triggers.attr("aria-expanded","true"),this.$element.attr("aria-hidden","false").trigger("opened.zf.offcanvas"),this.options.contentScroll===!1&&(e("body").addClass("is-off-canvas-open").on("touchmove",this._stopScrolling),this.$element.on("touchstart",this._recordScrollable),this.$element.on("touchmove",this._stopScrollPropagation)),this.options.contentOverlay===!0&&this.$overlay.addClass("is-visible"),this.options.closeOnClick===!0&&this.options.contentOverlay===!0&&this.$overlay.addClass("is-closable"),this.options.autoFocus===!0&&this.$element.one(Foundation.transitionend(this.$element),function(){s.$element.find("a, button").eq(0).focus()}),this.options.trapFocus===!0&&(this.$element.siblings("[data-off-canvas-content]").attr("tabindex","-1"),Foundation.Keyboard.trapFocus(this.$element))}}},{key:"close",value:function(t){if(this.$element.hasClass("is-open")&&!this.isRevealed){var o=this;o.$element.removeClass("is-open"),this.$element.attr("aria-hidden","true").trigger("closed.zf.offcanvas"),this.options.contentScroll===!1&&(e("body").removeClass("is-off-canvas-open").off("touchmove",this._stopScrolling),this.$element.off("touchstart",this._recordScrollable),this.$element.off("touchmove",this._stopScrollPropagation)),this.options.contentOverlay===!0&&this.$overlay.removeClass("is-visible"),this.options.closeOnClick===!0&&this.options.contentOverlay===!0&&this.$overlay.removeClass("is-closable"),this.$triggers.attr("aria-expanded","false"),this.options.trapFocus===!0&&(this.$element.siblings("[data-off-canvas-content]").removeAttr("tabindex"),Foundation.Keyboard.releaseFocus(this.$element))}}},{key:"toggle",value:function(e,t){this.$element.hasClass("is-open")?this.close(e,t):this.open(e,t)}},{key:"_handleKeyboard",value:function(e){var t=this;Foundation.Keyboard.handleKey(e,"OffCanvas",{close:function(){return t.close(),t.$lastTrigger.focus(),!0},handled:function(){e.stopPropagation(),e.preventDefault()}})}},{key:"destroy",value:function(){this.close(),this.$element.off(".zf.trigger .zf.offcanvas"),this.$overlay.off(".zf.offcanvas"),Foundation.unregisterPlugin(this)}}]),t}();t.defaults={closeOnClick:!0,contentOverlay:!0,contentScroll:!0,transitionTime:0,transition:"push",forceTo:null,isRevealed:!1,revealOn:null,autoFocus:!0,revealClass:"reveal-for-",trapFocus:!1},Foundation.plugin(t,"OffCanvas")}(jQuery);
|
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
4
|
+
|
|
5
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
6
|
+
|
|
7
|
+
!function ($) {
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Orbit module.
|
|
11
|
+
* @module foundation.orbit
|
|
12
|
+
* @requires foundation.util.keyboard
|
|
13
|
+
* @requires foundation.util.motion
|
|
14
|
+
* @requires foundation.util.timerAndImageLoader
|
|
15
|
+
* @requires foundation.util.touch
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
var Orbit = function () {
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new instance of an orbit carousel.
|
|
21
|
+
* @class
|
|
22
|
+
* @param {jQuery} element - jQuery object to make into an Orbit Carousel.
|
|
23
|
+
* @param {Object} options - Overrides to the default plugin settings.
|
|
24
|
+
*/
|
|
25
|
+
function Orbit(element, options) {
|
|
26
|
+
_classCallCheck(this, Orbit);
|
|
27
|
+
|
|
28
|
+
this.$element = element;
|
|
29
|
+
this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);
|
|
30
|
+
|
|
31
|
+
this._init();
|
|
32
|
+
|
|
33
|
+
Foundation.registerPlugin(this, 'Orbit');
|
|
34
|
+
Foundation.Keyboard.register('Orbit', {
|
|
35
|
+
'ltr': {
|
|
36
|
+
'ARROW_RIGHT': 'next',
|
|
37
|
+
'ARROW_LEFT': 'previous'
|
|
38
|
+
},
|
|
39
|
+
'rtl': {
|
|
40
|
+
'ARROW_LEFT': 'next',
|
|
41
|
+
'ARROW_RIGHT': 'previous'
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.
|
|
48
|
+
* @function
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
_createClass(Orbit, [{
|
|
54
|
+
key: '_init',
|
|
55
|
+
value: function _init() {
|
|
56
|
+
// @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide
|
|
57
|
+
this._reset();
|
|
58
|
+
|
|
59
|
+
this.$wrapper = this.$element.find('.' + this.options.containerClass);
|
|
60
|
+
this.$slides = this.$element.find('.' + this.options.slideClass);
|
|
61
|
+
|
|
62
|
+
var $images = this.$element.find('img'),
|
|
63
|
+
initActive = this.$slides.filter('.is-active'),
|
|
64
|
+
id = this.$element[0].id || Foundation.GetYoDigits(6, 'orbit');
|
|
65
|
+
|
|
66
|
+
this.$element.attr({
|
|
67
|
+
'data-resize': id,
|
|
68
|
+
'id': id
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
if (!initActive.length) {
|
|
72
|
+
this.$slides.eq(0).addClass('is-active');
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (!this.options.useMUI) {
|
|
76
|
+
this.$slides.addClass('no-motionui');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if ($images.length) {
|
|
80
|
+
Foundation.onImagesLoaded($images, this._prepareForOrbit.bind(this));
|
|
81
|
+
} else {
|
|
82
|
+
this._prepareForOrbit(); //hehe
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (this.options.bullets) {
|
|
86
|
+
this._loadBullets();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
this._events();
|
|
90
|
+
|
|
91
|
+
if (this.options.autoPlay && this.$slides.length > 1) {
|
|
92
|
+
this.geoSync();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (this.options.accessible) {
|
|
96
|
+
// allow wrapper to be focusable to enable arrow navigation
|
|
97
|
+
this.$wrapper.attr('tabindex', 0);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Creates a jQuery collection of bullets, if they are being used.
|
|
103
|
+
* @function
|
|
104
|
+
* @private
|
|
105
|
+
*/
|
|
106
|
+
|
|
107
|
+
}, {
|
|
108
|
+
key: '_loadBullets',
|
|
109
|
+
value: function _loadBullets() {
|
|
110
|
+
this.$bullets = this.$element.find('.' + this.options.boxOfBullets).find('button');
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Sets a `timer` object on the orbit, and starts the counter for the next slide.
|
|
115
|
+
* @function
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
}, {
|
|
119
|
+
key: 'geoSync',
|
|
120
|
+
value: function geoSync() {
|
|
121
|
+
var _this = this;
|
|
122
|
+
this.timer = new Foundation.Timer(this.$element, {
|
|
123
|
+
duration: this.options.timerDelay,
|
|
124
|
+
infinite: false
|
|
125
|
+
}, function () {
|
|
126
|
+
_this.changeSlide(true);
|
|
127
|
+
});
|
|
128
|
+
this.timer.start();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Sets wrapper and slide heights for the orbit.
|
|
133
|
+
* @function
|
|
134
|
+
* @private
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
}, {
|
|
138
|
+
key: '_prepareForOrbit',
|
|
139
|
+
value: function _prepareForOrbit() {
|
|
140
|
+
var _this = this;
|
|
141
|
+
this._setWrapperHeight();
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.
|
|
146
|
+
* @function
|
|
147
|
+
* @private
|
|
148
|
+
* @param {Function} cb - a callback function to fire when complete.
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
}, {
|
|
152
|
+
key: '_setWrapperHeight',
|
|
153
|
+
value: function _setWrapperHeight(cb) {
|
|
154
|
+
//rewrite this to `for` loop
|
|
155
|
+
var max = 0,
|
|
156
|
+
temp,
|
|
157
|
+
counter = 0,
|
|
158
|
+
_this = this;
|
|
159
|
+
|
|
160
|
+
this.$slides.each(function () {
|
|
161
|
+
temp = this.getBoundingClientRect().height;
|
|
162
|
+
$(this).attr('data-slide', counter);
|
|
163
|
+
|
|
164
|
+
if (_this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {
|
|
165
|
+
//if not the active slide, set css position and display property
|
|
166
|
+
$(this).css({ 'position': 'relative', 'display': 'none' });
|
|
167
|
+
}
|
|
168
|
+
max = temp > max ? temp : max;
|
|
169
|
+
counter++;
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
if (counter === this.$slides.length) {
|
|
173
|
+
this.$wrapper.css({ 'height': max }); //only change the wrapper height property once.
|
|
174
|
+
if (cb) {
|
|
175
|
+
cb(max);
|
|
176
|
+
} //fire callback with max height dimension.
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Sets the max-height of each slide.
|
|
182
|
+
* @function
|
|
183
|
+
* @private
|
|
184
|
+
*/
|
|
185
|
+
|
|
186
|
+
}, {
|
|
187
|
+
key: '_setSlideHeight',
|
|
188
|
+
value: function _setSlideHeight(height) {
|
|
189
|
+
this.$slides.each(function () {
|
|
190
|
+
$(this).css('max-height', height);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Adds event listeners to basically everything within the element.
|
|
196
|
+
* @function
|
|
197
|
+
* @private
|
|
198
|
+
*/
|
|
199
|
+
|
|
200
|
+
}, {
|
|
201
|
+
key: '_events',
|
|
202
|
+
value: function _events() {
|
|
203
|
+
var _this = this;
|
|
204
|
+
|
|
205
|
+
//***************************************
|
|
206
|
+
//**Now using custom event - thanks to:**
|
|
207
|
+
//** Yohai Ararat of Toronto **
|
|
208
|
+
//***************************************
|
|
209
|
+
//
|
|
210
|
+
this.$element.off('.resizeme.zf.trigger').on({
|
|
211
|
+
'resizeme.zf.trigger': this._prepareForOrbit.bind(this)
|
|
212
|
+
});
|
|
213
|
+
if (this.$slides.length > 1) {
|
|
214
|
+
|
|
215
|
+
if (this.options.swipe) {
|
|
216
|
+
this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit').on('swipeleft.zf.orbit', function (e) {
|
|
217
|
+
e.preventDefault();
|
|
218
|
+
_this.changeSlide(true);
|
|
219
|
+
}).on('swiperight.zf.orbit', function (e) {
|
|
220
|
+
e.preventDefault();
|
|
221
|
+
_this.changeSlide(false);
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
//***************************************
|
|
225
|
+
|
|
226
|
+
if (this.options.autoPlay) {
|
|
227
|
+
this.$slides.on('click.zf.orbit', function () {
|
|
228
|
+
_this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);
|
|
229
|
+
_this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
if (this.options.pauseOnHover) {
|
|
233
|
+
this.$element.on('mouseenter.zf.orbit', function () {
|
|
234
|
+
_this.timer.pause();
|
|
235
|
+
}).on('mouseleave.zf.orbit', function () {
|
|
236
|
+
if (!_this.$element.data('clickedOn')) {
|
|
237
|
+
_this.timer.start();
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
if (this.options.navButtons) {
|
|
244
|
+
var $controls = this.$element.find('.' + this.options.nextClass + ', .' + this.options.prevClass);
|
|
245
|
+
$controls.attr('tabindex', 0)
|
|
246
|
+
//also need to handle enter/return and spacebar key presses
|
|
247
|
+
.on('click.zf.orbit touchend.zf.orbit', function (e) {
|
|
248
|
+
e.preventDefault();
|
|
249
|
+
_this.changeSlide($(this).hasClass(_this.options.nextClass));
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (this.options.bullets) {
|
|
254
|
+
this.$bullets.on('click.zf.orbit touchend.zf.orbit', function () {
|
|
255
|
+
if (/is-active/g.test(this.className)) {
|
|
256
|
+
return false;
|
|
257
|
+
} //if this is active, kick out of function.
|
|
258
|
+
var idx = $(this).data('slide'),
|
|
259
|
+
ltr = idx > _this.$slides.filter('.is-active').data('slide'),
|
|
260
|
+
$slide = _this.$slides.eq(idx);
|
|
261
|
+
|
|
262
|
+
_this.changeSlide(ltr, $slide, idx);
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
if (this.options.accessible) {
|
|
267
|
+
this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function (e) {
|
|
268
|
+
// handle keyboard event with keyboard util
|
|
269
|
+
Foundation.Keyboard.handleKey(e, 'Orbit', {
|
|
270
|
+
next: function () {
|
|
271
|
+
_this.changeSlide(true);
|
|
272
|
+
},
|
|
273
|
+
previous: function () {
|
|
274
|
+
_this.changeSlide(false);
|
|
275
|
+
},
|
|
276
|
+
handled: function () {
|
|
277
|
+
// if bullet is focused, make sure focus moves
|
|
278
|
+
if ($(e.target).is(_this.$bullets)) {
|
|
279
|
+
_this.$bullets.filter('.is-active').focus();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Resets Orbit so it can be reinitialized
|
|
290
|
+
*/
|
|
291
|
+
|
|
292
|
+
}, {
|
|
293
|
+
key: '_reset',
|
|
294
|
+
value: function _reset() {
|
|
295
|
+
// Don't do anything if there are no slides (first run)
|
|
296
|
+
if (typeof this.$slides == 'undefined') {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
if (this.$slides.length > 1) {
|
|
301
|
+
// Remove old events
|
|
302
|
+
this.$element.off('.zf.orbit').find('*').off('.zf.orbit');
|
|
303
|
+
|
|
304
|
+
// Restart timer if autoPlay is enabled
|
|
305
|
+
if (this.options.autoPlay) {
|
|
306
|
+
this.timer.restart();
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// Reset all sliddes
|
|
310
|
+
this.$slides.each(function (el) {
|
|
311
|
+
$(el).removeClass('is-active is-active is-in').removeAttr('aria-live').hide();
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
// Show the first slide
|
|
315
|
+
this.$slides.first().addClass('is-active').show();
|
|
316
|
+
|
|
317
|
+
// Triggers when the slide has finished animating
|
|
318
|
+
this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);
|
|
319
|
+
|
|
320
|
+
// Select first bullet if bullets are present
|
|
321
|
+
if (this.options.bullets) {
|
|
322
|
+
this._updateBullets(0);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Changes the current slide to a new one.
|
|
329
|
+
* @function
|
|
330
|
+
* @param {Boolean} isLTR - flag if the slide should move left to right.
|
|
331
|
+
* @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.
|
|
332
|
+
* @param {Number} idx - the index of the new slide in its collection, if one chosen.
|
|
333
|
+
* @fires Orbit#slidechange
|
|
334
|
+
*/
|
|
335
|
+
|
|
336
|
+
}, {
|
|
337
|
+
key: 'changeSlide',
|
|
338
|
+
value: function changeSlide(isLTR, chosenSlide, idx) {
|
|
339
|
+
if (!this.$slides) {
|
|
340
|
+
return;
|
|
341
|
+
} // Don't freak out if we're in the middle of cleanup
|
|
342
|
+
var $curSlide = this.$slides.filter('.is-active').eq(0);
|
|
343
|
+
|
|
344
|
+
if (/mui/g.test($curSlide[0].className)) {
|
|
345
|
+
return false;
|
|
346
|
+
} //if the slide is currently animating, kick out of the function
|
|
347
|
+
|
|
348
|
+
var $firstSlide = this.$slides.first(),
|
|
349
|
+
$lastSlide = this.$slides.last(),
|
|
350
|
+
dirIn = isLTR ? 'Right' : 'Left',
|
|
351
|
+
dirOut = isLTR ? 'Left' : 'Right',
|
|
352
|
+
_this = this,
|
|
353
|
+
$newSlide;
|
|
354
|
+
|
|
355
|
+
if (!chosenSlide) {
|
|
356
|
+
//most of the time, this will be auto played or clicked from the navButtons.
|
|
357
|
+
$newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!
|
|
358
|
+
this.options.infiniteWrap ? $curSlide.next('.' + this.options.slideClass).length ? $curSlide.next('.' + this.options.slideClass) : $firstSlide : $curSlide.next('.' + this.options.slideClass) : //pick next slide if moving left to right
|
|
359
|
+
this.options.infiniteWrap ? $curSlide.prev('.' + this.options.slideClass).length ? $curSlide.prev('.' + this.options.slideClass) : $lastSlide : $curSlide.prev('.' + this.options.slideClass); //pick prev slide if moving right to left
|
|
360
|
+
} else {
|
|
361
|
+
$newSlide = chosenSlide;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
if ($newSlide.length) {
|
|
365
|
+
/**
|
|
366
|
+
* Triggers before the next slide starts animating in and only if a next slide has been found.
|
|
367
|
+
* @event Orbit#beforeslidechange
|
|
368
|
+
*/
|
|
369
|
+
this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);
|
|
370
|
+
|
|
371
|
+
if (this.options.bullets) {
|
|
372
|
+
idx = idx || this.$slides.index($newSlide); //grab index to update bullets
|
|
373
|
+
this._updateBullets(idx);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
if (this.options.useMUI && !this.$element.is(':hidden')) {
|
|
377
|
+
Foundation.Motion.animateIn($newSlide.addClass('is-active').css({ 'position': 'absolute', 'top': 0 }), this.options['animInFrom' + dirIn], function () {
|
|
378
|
+
$newSlide.css({ 'position': 'relative', 'display': 'block' }).attr('aria-live', 'polite');
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
Foundation.Motion.animateOut($curSlide.removeClass('is-active'), this.options['animOutTo' + dirOut], function () {
|
|
382
|
+
$curSlide.removeAttr('aria-live');
|
|
383
|
+
if (_this.options.autoPlay && !_this.timer.isPaused) {
|
|
384
|
+
_this.timer.restart();
|
|
385
|
+
}
|
|
386
|
+
//do stuff?
|
|
387
|
+
});
|
|
388
|
+
} else {
|
|
389
|
+
$curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();
|
|
390
|
+
$newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();
|
|
391
|
+
if (this.options.autoPlay && !this.timer.isPaused) {
|
|
392
|
+
this.timer.restart();
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Triggers when the slide has finished animating in.
|
|
397
|
+
* @event Orbit#slidechange
|
|
398
|
+
*/
|
|
399
|
+
this.$element.trigger('slidechange.zf.orbit', [$newSlide]);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* Updates the active state of the bullets, if displayed.
|
|
405
|
+
* @function
|
|
406
|
+
* @private
|
|
407
|
+
* @param {Number} idx - the index of the current slide.
|
|
408
|
+
*/
|
|
409
|
+
|
|
410
|
+
}, {
|
|
411
|
+
key: '_updateBullets',
|
|
412
|
+
value: function _updateBullets(idx) {
|
|
413
|
+
var $oldBullet = this.$element.find('.' + this.options.boxOfBullets).find('.is-active').removeClass('is-active').blur(),
|
|
414
|
+
span = $oldBullet.find('span:last').detach(),
|
|
415
|
+
$newBullet = this.$bullets.eq(idx).addClass('is-active').append(span);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Destroys the carousel and hides the element.
|
|
420
|
+
* @function
|
|
421
|
+
*/
|
|
422
|
+
|
|
423
|
+
}, {
|
|
424
|
+
key: 'destroy',
|
|
425
|
+
value: function destroy() {
|
|
426
|
+
this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();
|
|
427
|
+
Foundation.unregisterPlugin(this);
|
|
428
|
+
}
|
|
429
|
+
}]);
|
|
430
|
+
|
|
431
|
+
return Orbit;
|
|
432
|
+
}();
|
|
433
|
+
|
|
434
|
+
Orbit.defaults = {
|
|
435
|
+
/**
|
|
436
|
+
* Tells the JS to look for and loadBullets.
|
|
437
|
+
* @option
|
|
438
|
+
* @type {boolean}
|
|
439
|
+
* @default true
|
|
440
|
+
*/
|
|
441
|
+
bullets: true,
|
|
442
|
+
/**
|
|
443
|
+
* Tells the JS to apply event listeners to nav buttons
|
|
444
|
+
* @option
|
|
445
|
+
* @type {boolean}
|
|
446
|
+
* @default true
|
|
447
|
+
*/
|
|
448
|
+
navButtons: true,
|
|
449
|
+
/**
|
|
450
|
+
* motion-ui animation class to apply
|
|
451
|
+
* @option
|
|
452
|
+
* @type {string}
|
|
453
|
+
* @default 'slide-in-right'
|
|
454
|
+
*/
|
|
455
|
+
animInFromRight: 'slide-in-right',
|
|
456
|
+
/**
|
|
457
|
+
* motion-ui animation class to apply
|
|
458
|
+
* @option
|
|
459
|
+
* @type {string}
|
|
460
|
+
* @default 'slide-out-right'
|
|
461
|
+
*/
|
|
462
|
+
animOutToRight: 'slide-out-right',
|
|
463
|
+
/**
|
|
464
|
+
* motion-ui animation class to apply
|
|
465
|
+
* @option
|
|
466
|
+
* @type {string}
|
|
467
|
+
* @default 'slide-in-left'
|
|
468
|
+
*
|
|
469
|
+
*/
|
|
470
|
+
animInFromLeft: 'slide-in-left',
|
|
471
|
+
/**
|
|
472
|
+
* motion-ui animation class to apply
|
|
473
|
+
* @option
|
|
474
|
+
* @type {string}
|
|
475
|
+
* @default 'slide-out-left'
|
|
476
|
+
*/
|
|
477
|
+
animOutToLeft: 'slide-out-left',
|
|
478
|
+
/**
|
|
479
|
+
* Allows Orbit to automatically animate on page load.
|
|
480
|
+
* @option
|
|
481
|
+
* @type {boolean}
|
|
482
|
+
* @default true
|
|
483
|
+
*/
|
|
484
|
+
autoPlay: true,
|
|
485
|
+
/**
|
|
486
|
+
* Amount of time, in ms, between slide transitions
|
|
487
|
+
* @option
|
|
488
|
+
* @type {number}
|
|
489
|
+
* @default 5000
|
|
490
|
+
*/
|
|
491
|
+
timerDelay: 5000,
|
|
492
|
+
/**
|
|
493
|
+
* Allows Orbit to infinitely loop through the slides
|
|
494
|
+
* @option
|
|
495
|
+
* @type {boolean}
|
|
496
|
+
* @default true
|
|
497
|
+
*/
|
|
498
|
+
infiniteWrap: true,
|
|
499
|
+
/**
|
|
500
|
+
* Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library
|
|
501
|
+
* @option
|
|
502
|
+
* @type {boolean}
|
|
503
|
+
* @default true
|
|
504
|
+
*/
|
|
505
|
+
swipe: true,
|
|
506
|
+
/**
|
|
507
|
+
* Allows the timing function to pause animation on hover.
|
|
508
|
+
* @option
|
|
509
|
+
* @type {boolean}
|
|
510
|
+
* @default true
|
|
511
|
+
*/
|
|
512
|
+
pauseOnHover: true,
|
|
513
|
+
/**
|
|
514
|
+
* Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys
|
|
515
|
+
* @option
|
|
516
|
+
* @type {boolean}
|
|
517
|
+
* @default true
|
|
518
|
+
*/
|
|
519
|
+
accessible: true,
|
|
520
|
+
/**
|
|
521
|
+
* Class applied to the container of Orbit
|
|
522
|
+
* @option
|
|
523
|
+
* @type {string}
|
|
524
|
+
* @default 'orbit-container'
|
|
525
|
+
*/
|
|
526
|
+
containerClass: 'orbit-container',
|
|
527
|
+
/**
|
|
528
|
+
* Class applied to individual slides.
|
|
529
|
+
* @option
|
|
530
|
+
* @type {string}
|
|
531
|
+
* @default 'orbit-slide'
|
|
532
|
+
*/
|
|
533
|
+
slideClass: 'orbit-slide',
|
|
534
|
+
/**
|
|
535
|
+
* Class applied to the bullet container. You're welcome.
|
|
536
|
+
* @option
|
|
537
|
+
* @type {string}
|
|
538
|
+
* @default 'orbit-bullets'
|
|
539
|
+
*/
|
|
540
|
+
boxOfBullets: 'orbit-bullets',
|
|
541
|
+
/**
|
|
542
|
+
* Class applied to the `next` navigation button.
|
|
543
|
+
* @option
|
|
544
|
+
* @type {string}
|
|
545
|
+
* @default 'orbit-next'
|
|
546
|
+
*/
|
|
547
|
+
nextClass: 'orbit-next',
|
|
548
|
+
/**
|
|
549
|
+
* Class applied to the `previous` navigation button.
|
|
550
|
+
* @option
|
|
551
|
+
* @type {string}
|
|
552
|
+
* @default 'orbit-previous'
|
|
553
|
+
*/
|
|
554
|
+
prevClass: 'orbit-previous',
|
|
555
|
+
/**
|
|
556
|
+
* Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatability.
|
|
557
|
+
* @option
|
|
558
|
+
* @type {boolean}
|
|
559
|
+
* @default true
|
|
560
|
+
*/
|
|
561
|
+
useMUI: true
|
|
562
|
+
};
|
|
563
|
+
|
|
564
|
+
// Window exports
|
|
565
|
+
Foundation.plugin(Orbit, 'Orbit');
|
|
566
|
+
}(jQuery);
|