1
0
mirror of https://github.com/Hutchy68/pivot.git synced 2024-11-24 03:19:02 +01:00

Merge branch 'develop'

This commit is contained in:
Tom Hutchison 2018-02-28 09:51:52 -05:00
commit ca91229c90
28 changed files with 1459 additions and 1062 deletions

View File

@ -1,3 +1,13 @@
## Version 2.0.0
* [bug fix] Addressed serveral W3C validation errors with HTML output.
* [bug fix] update JavaScript of Foundation.js to stop deprecation warnings. Now version matches Foundation branch of Foundation 5.5.3 not released.
* [CSS, bug fix] various changes to CSS to fix bugs and address MediaWiki hidden CSS loading
* [enhancement] ability to preload Font Awesome and bypass server setup errors, added as a feature setting
* [enhancement] move all Font Awesome icons to `::before` CSS from JS pivot.js
* [b/c changes] remove feature `'IeEdgeCode'` feature set to send a compatibility header
* [b/c changes] removing support for IE 9 and earlier
## Version 1.0.5 ## Version 1.0.5
* [bug fix] Search link was not follow $wgScript path * [bug fix] Search link was not follow $wgScript path

View File

@ -13,6 +13,7 @@ class SkinPivot extends SkinTemplate {
public function setupSkinUserCss(OutputPage $out) { public function setupSkinUserCss(OutputPage $out) {
parent::setupSkinUserCss($out); parent::setupSkinUserCss($out);
global $wgLocalStylePath;
global $wgPivotFeatures; global $wgPivotFeatures;
$wgPivotFeaturesDefaults = array( $wgPivotFeaturesDefaults = array(
'showActionsForAnon' => true, 'showActionsForAnon' => true,
@ -23,7 +24,7 @@ class SkinPivot extends SkinTemplate {
'wikiName' => &$GLOBALS['wgSitename'], 'wikiName' => &$GLOBALS['wgSitename'],
'wikiNameDesktop' => &$GLOBALS['wgSitename'], 'wikiNameDesktop' => &$GLOBALS['wgSitename'],
'navbarIcon' => false, 'navbarIcon' => false,
'IeEdgeCode' => 1, 'preloadFontAwesome' => false,
'showFooterIcons' => false, 'showFooterIcons' => false,
'addThisPUBID' => '', 'addThisPUBID' => '',
'useAddThisShare' => '', 'useAddThisShare' => '',
@ -34,25 +35,13 @@ class SkinPivot extends SkinTemplate {
$wgPivotFeatures[$fgOption] = $fgOptionValue; $wgPivotFeatures[$fgOption] = $fgOptionValue;
} }
} }
switch ($wgPivotFeatures['IeEdgeCode']) {
case 1:
$out->addHeadItem('ie-meta', '<meta http-equiv="X-UA-Compatible" content="IE=edge" />');
break;
case 2:
if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
header('X-UA-Compatible: IE=edge');
break;
}
$out->addModuleStyles('skins.pivot.styles'); $out->addModuleStyles('skins.pivot.styles');
} $viewport_meta = 'width=device-width, user-scalable=yes, initial-scale=1.0';
public function initPage(OutputPage $out) {
global $wgLocalStylePath;
parent::initPage($out);
$viewport_meta = 'width=device-width, user-scalable=yes, initial-scale=1.0';
$out->addMeta('viewport', $viewport_meta); $out->addMeta('viewport', $viewport_meta);
$out->addModuleScripts('skins.pivot.js'); $out->addModuleScripts('skins.pivot.js');
if ( $wgPivotFeatures['preloadFontAwesome'] ) {
$out->addHeadItem('font', '<link rel="preload" href="'.$wgLocalStylePath.'/pivot/assets/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin="anonymous" />');
}
} }
} }
@ -222,7 +211,7 @@ class pivotTemplate extends BaseTemplate {
<!-- Go to www.addthis.com/dashboard to customize your tools --> <!-- Go to www.addthis.com/dashboard to customize your tools -->
<?php } ?> <?php } ?>
<?php if ( $this->data['isarticle'] ) { ?><h3 id="tagline"><?php $this->msg( 'tagline' ) ?></h3><?php } ?> <?php if ( $this->data['isarticle'] ) { ?><h3 id="tagline"><?php $this->msg( 'tagline' ) ?></h3><?php } ?>
<h5 id="sitesub" class="subtitle"><?php $this->html('subtitle') ?></h5> <?php if ( $this->html('subtitle') ) { ?><h5 id="sitesub" class="subtitle"><?php $this->html('subtitle') ?></h5><?php } ?>
<div id="contentSub" class="clear_both"></div> <div id="contentSub" class="clear_both"></div>
<div id="bodyContent" class="mw-bodytext"> <div id="bodyContent" class="mw-bodytext">
<?php <?php
@ -248,7 +237,7 @@ class pivotTemplate extends BaseTemplate {
<footer class="row"> <footer class="row">
<div id="footer"> <div id="footer">
<div id="footer-left" class="small-12 medium-8 large-9 columns"> <div id="div-footer-left" class="small-12 medium-8 large-9 columns">
<ul id="footer-left"> <ul id="footer-left">
<?php foreach ($this->getFooterLinks("flat") as $key) { ?> <?php foreach ($this->getFooterLinks("flat") as $key) { ?>
<li id="footer-<?php echo $key ?>"><?php $this->html($key) ?></li> <li id="footer-<?php echo $key ?>"><?php $this->html($key) ?></li>
@ -283,15 +272,16 @@ class pivotTemplate extends BaseTemplate {
</section> </section>
</div> </div>
</div> </div>
<div>
<a class="exit-off-canvas"></a> <a class="exit-off-canvas"></a>
</div> </div>
<?php $this->printTrail(); ?> <?php $this->printTrail(); ?>
<?php if ($this->data['isarticle'] && $wgPivotFeatures['addThisPUBID'] !== '') { ?> <?php if ($this->data['isarticle'] && $wgPivotFeatures['addThisPUBID'] !== '') { ?>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=<?php echo $wgPivotFeatures['addThisPUBID']; ?>" async="async">></script> <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=<?php echo $wgPivotFeatures['addThisPUBID']; ?>" async="async"></script>
<?php } ?> <?php } ?>
</body> </body>
</html> </html>
@ -303,16 +293,12 @@ class pivotTemplate extends BaseTemplate {
function renderSidebar() { function renderSidebar() {
$sidebar = $this->getSidebar(); $sidebar = $this->getSidebar();
$toolbox = $this->getToolbox(); foreach ($sidebar as $boxName => $box) {
foreach ($sidebar as $boxName => $box) { if ( ($box['header'] != wfMessage( 'toolbox' )->text()) ) { echo '<li><label class="sidebar" id="'.Sanitizer::escapeId( $box['id'] ).'"';echo Linker::tooltip( $box['id'] ).'>'.htmlspecialchars( $box['header'] ).'</label></li>';
echo '<li id='.Sanitizer::escapeId( $box['id'] ); Linker::tooltip( $box['id'] ).'>';
echo '<li><label>'.htmlspecialchars( $box['header'] ).'</label></li>';
if ( is_array( $box['content'] ) ) { if ( is_array( $box['content'] ) ) {
foreach ($box['content'] as $key => $item) { echo $this->makeListItem($key, $item); } foreach ($box['content'] as $key => $item) { echo $this->makeListItem($key, $item); }
} } }
} }
echo '<li><label>Toolbox</label></li>'; return; }
foreach ($toolbox as $key => $tbitem) { echo $this->makeListItem($key, $tbitem); }
}
} }
?> ?>

View File

@ -36,11 +36,14 @@ To activate Pivot for all users and anonymous visitors, you need to set the `$wg
Use following features in `LocalSettings.php` to change the behavior. Use following features in `LocalSettings.php` to change the behavior.
- `'showActionsForAnon' => true` displays page actions for non-logged-in visitors. - `'showActionsForAnon' => true` displays page actions for non-logged-in visitors.
- `'fixedNavBar' => false` will allow the NavBar to scroll with the content, `true` will lock the NavBar.
- `'usePivotTabs' => false` set to true to enable Foundation tabs markup in wiki pages.
- `'showHelpUnderTools' => true` a Link to "Help" will be created under "Tools". - `'showHelpUnderTools' => true` a Link to "Help" will be created under "Tools".
- `'showRecentChangesUnderTool's => true` a Link to "recent changes" will be created under "Tools". - `'showRecentChangesUnderTool's => true` a Link to "recent changes" will be created under "Tools".
- `'IeEdgeCode' => 1` will produce a meta tag with "X-UA-Compatible" content="IE=edge", `2` will sent a header, `0` nothing will be done - `'wikiName' => &$GLOBALS['wgSitename']` default is the sitename. Set to display a short version without changing the systems wikiname.
- `'fixedNavBar' => false` will allow the NavBar to scroll with the content, `true` will lock the NavBar. - `'wikiNameDesktop' => &$GLOBALS['wgSitename']` default sitename. Set to display a longer name in desktop view.
- `'navbarIcon' => false` no icon in mobile view, `true` to use the global set logopath image of the wiki. - `'navbarIcon' => false` no icon in mobile view, `true` to use the global set logopath image of the wiki.
- `'preloadFontAwesome' => false` set to true to preload Font Awesome as a `<head>` element. Useful to overcome MIME type server configurations not set correctly.
- `'showFooterIcons' => false` will show text in place of footer icons, `true` will output the icons as globally set. - `'showFooterIcons' => false` will show text in place of footer icons, `true` will output the icons as globally set.
- `'addThisPUBID' => ''` empty string will not fire the AddThis script, `'ra-##-#######'` publisher ID will allow the run the AddThis script in async on content pages only. - `'addThisPUBID' => ''` empty string will not fire the AddThis script, `'ra-##-#######'` publisher ID will allow the run the AddThis script in async on content pages only.
- `'useAddThisShare' => ''` default empty string, do not use AddThis share, `your_addthis_specific_div_class_string` will insert the share toolbox div directly under page title, but before the tagline with your custom div class. - `'useAddThisShare' => ''` default empty string, do not use AddThis share, `your_addthis_specific_div_class_string` will insert the share toolbox div directly under page title, but before the tagline with your custom div class.
@ -51,17 +54,18 @@ These are the default values and the example of the array to change the defaults
$wgPivotFeatures = array( $wgPivotFeatures = array(
'showActionsForAnon' => true, 'showActionsForAnon' => true,
'fixedNavBar' => false, 'fixedNavBar' => false,
'usePivotTabs' => false,
'showHelpUnderTools' => true, 'showHelpUnderTools' => true,
'showRecentChangesUnderTools' => true, 'showRecentChangesUnderTools' => true,
'wikiName' => &$GLOBALS['wgSitename'], 'wikiName' => &$GLOBALS['wgSitename'],
'wikiNameDesktop' => &$GLOBALS['wgSitename'], 'wikiNameDesktop' => &$GLOBALS['wgSitename'],
'navbarIcon' => false, 'navbarIcon' => false,
'IeEdgeCode' => 1, 'preloadFontAwesome' => false,
'showFooterIcons' => false, 'showFooterIcons' => true,
'addThisPUBID' => '', 'addThisPUBID' => '',
'useAddThisShare' => '', 'useAddThisShare' => '',
'useAddThisFollow' => '' 'useAddThisFollow' => ''
); );
### Notes on other skins ### Notes on other skins

File diff suppressed because one or more lines are too long

View File

@ -4,15 +4,18 @@
Foundation.libs.abide = { Foundation.libs.abide = {
name : 'abide', name : 'abide',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
live_validate : true, live_validate : true, // validate the form as you go
validate_on_blur : true, validate_on_blur : true, // validate whenever you focus/blur on an input field
// validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events) // validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
focus_on_invalid : true,
error_labels : true, // labels with a for="inputId" will recieve an `error` class focus_on_invalid : true, // automatically bring the focus to an invalid input field
error_class : 'error', error_labels : true, // labels with a for="inputId" will receive an `error` class
error_class : 'error', // labels with a for="inputId" will receive an `error` class
// the amount of time Abide will take before it validates the form (in ms).
// smaller time will result in faster validation
timeout : 1000, timeout : 1000,
patterns : { patterns : {
alpha : /^[a-zA-Z]+$/, alpha : /^[a-zA-Z]+$/,
@ -77,7 +80,6 @@
}.bind(originalSelf), settings.timeout); }.bind(originalSelf), settings.timeout);
} }
form form
.off('.abide') .off('.abide')
.on('submit.fndtn.abide', function (e) { .on('submit.fndtn.abide', function (e) {
@ -90,27 +92,39 @@
} }
}) })
.on('reset', function (e) { .on('reset', function (e) {
return self.reset($(this), e); return self.reset($(this), e);
}) })
.find('input, textarea, select').not(":hidden, [data-abide-ignore]") .find('input, textarea, select').not(":hidden, [data-abide-ignore]")
.off('.abide') .off('.abide')
.on('blur.fndtn.abide change.fndtn.abide', function (e) { .on('blur.fndtn.abide change.fndtn.abide', function (e) {
var id = this.getAttribute('id'),
eqTo = form.find('[data-equalto="'+ id +'"]');
// old settings fallback // old settings fallback
// will be deprecated with F6 release // will be deprecated with F6 release
if (settings.validate_on_blur && settings.validate_on_blur === true) { if (settings.validate_on_blur && settings.validate_on_blur === true) {
validate(this, e); validate(this, e);
} }
// checks if there is an equalTo equivalent related by id
if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
validate(eqTo.get(0),e);
}
// new settings combining validate options into one setting // new settings combining validate options into one setting
if (settings.validate_on === 'change') { if (settings.validate_on === 'change') {
validate(this, e); validate(this, e);
} }
}) })
.on('keydown.fndtn.abide', function (e) { .on('keydown.fndtn.abide', function (e) {
var id = this.getAttribute('id'),
eqTo = form.find('[data-equalto="'+ id +'"]');
// old settings fallback // old settings fallback
// will be deprecated with F6 release // will be deprecated with F6 release
if (settings.live_validate && settings.live_validate === true && e.which != 9) { if (settings.live_validate && settings.live_validate === true && e.which != 9) {
validate(this, e); validate(this, e);
} }
// checks if there is an equalTo equivalent related by id
if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
validate(eqTo.get(0),e);
}
// new settings combining validate options into one setting // new settings combining validate options into one setting
if (settings.validate_on === 'tab' && e.which === 9) { if (settings.validate_on === 'tab' && e.which === 9) {
validate(this, e); validate(this, e);
@ -124,7 +138,7 @@
$('html, body').animate({ $('html, body').animate({
scrollTop: $(e.target).offset().top scrollTop: $(e.target).offset().top
}, 100); }, 100);
} }
}); });
}, },
@ -140,7 +154,7 @@
validate : function (els, e, is_ajax) { validate : function (els, e, is_ajax) {
var validations = this.parse_patterns(els), var validations = this.parse_patterns(els),
validation_count = validations.length, validation_count = validations.length,
form = this.S(els[0]).closest('form'), form = this.S(els.length ? els[0] : e.target).closest('form'),
submit_event = /submit/.test(e.type); submit_event = /submit/.test(e.type);
// Has to count up to make sure the focus gets applied to the top error // Has to count up to make sure the focus gets applied to the top error
@ -203,8 +217,11 @@
// TODO: Break this up into smaller methods, getting hard to read. // TODO: Break this up into smaller methods, getting hard to read.
check_validation_and_apply_styles : function (el_patterns) { check_validation_and_apply_styles : function (el_patterns) {
var i = el_patterns.length, var i = el_patterns.length,
validations = [], validations = [];
form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'), if (i == 0) {
return validations;
}
var form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
settings = form.data(this.attr_name(true) + '-init') || {}; settings = form.data(this.attr_name(true) + '-init') || {};
while (i--) { while (i--) {
var el = el_patterns[i][0], var el = el_patterns[i][0],
@ -299,6 +316,7 @@
} }
validations = validations.concat(el_validations); validations = validations.concat(el_validations);
} }
return validations; return validations;
}, },
@ -325,20 +343,20 @@
disabled = false; disabled = false;
// Has to count up to make sure the focus gets applied to the top error // Has to count up to make sure the focus gets applied to the top error
for (var i=0; i < count; i++) { for (var i=0; i < count; i++) {
if( group[i].getAttribute('disabled') ){ if( group[i].getAttribute('disabled') ){
disabled=true; disabled=true;
valid=true; valid=true;
} else { } else {
if (group[i].checked){ if (group[i].checked){
valid = true; valid = true;
} else { } else {
if( disabled ){ if( disabled ){
valid = false; valid = false;
}
}
} }
}
} }
}
// Has to count up to make sure the focus gets applied to the top error // Has to count up to make sure the focus gets applied to the top error
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {

View File

@ -4,7 +4,7 @@
Foundation.libs.accordion = { Foundation.libs.accordion = {
name : 'accordion', name : 'accordion',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
content_class : 'content', content_class : 'content',
@ -25,16 +25,18 @@
S(this.scope) S(this.scope)
.off('.fndtn.accordion') .off('.fndtn.accordion')
.on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) { .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a:not(.follow), [' + this.attr_name() + '] > li > a:not(.follow)', function (e) {
var accordion = S(this).closest('[' + self.attr_name() + ']'), var accordion = S(this).closest('[' + self.attr_name() + ']'),
groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()), groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
settings = accordion.data(self.attr_name(true) + '-init') || self.settings, settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
target = S('#' + this.href.split('#')[1]), contentAttr = S(this).context.attributes['data-content'],
target = S('#' + (contentAttr ? contentAttr.value : this.href.split('#')[1])),
aunts = $('> dd, > li', accordion), aunts = $('> dd, > li', accordion),
siblings = aunts.children('.' + settings.content_class), siblings = aunts.children('.' + settings.content_class),
active_content = siblings.filter('.' + settings.active_class); active_content = siblings.filter('.' + settings.active_class);
e.preventDefault(); e.preventDefault();
e.stopPropagation();
if (accordion.attr(self.attr_name())) { if (accordion.attr(self.attr_name())) {
siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class); siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
@ -74,12 +76,49 @@
settings = accordion.data(self.attr_name(true) + '-init') || self.settings; settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
aunts.children('a').attr('aria-expanded','false'); aunts.children('a').attr('aria-expanded','false');
aunts.has('.' + settings.content_class + '.' + settings.active_class).children('a').attr('aria-expanded','true'); aunts.has('.' + settings.content_class + '.' + settings.active_class).addClass(settings.active_class).children('a').attr('aria-expanded','true');
if (settings.multi_expand) { if (settings.multi_expand) {
$instance.attr('aria-multiselectable','true'); $instance.attr('aria-multiselectable','true');
} }
}, },
toggle : function(options) {
var options = typeof options !== 'undefined' ? options : {};
var selector = typeof options.selector !== 'undefined' ? options.selector : '';
var toggle_state = typeof options.toggle_state !== 'undefined' ? options.toggle_state : '';
var $accordion = typeof options.$accordion !== 'undefined' ? options.$accordion : this.S(this.scope).closest('[' + this.attr_name() + ']');
var $items = $accordion.find('> dd' + selector + ', > li' + selector);
if ( $items.length < 1 ) {
if ( window.console ) {
console.error('Selection not found.', selector);
}
return false;
}
var S = this.S;
var active_class = this.settings.active_class;
$items.each(function() {
var $item = S(this);
var is_active = $item.hasClass(active_class);
if ( ( is_active && toggle_state === 'close' ) || ( !is_active && toggle_state === 'open' ) || toggle_state === '' ) {
$item.find('> a').trigger('click.fndtn.accordion');
}
});
},
open : function(options) {
var options = typeof options !== 'undefined' ? options : {};
options.toggle_state = 'open';
this.toggle(options);
},
close : function(options) {
var options = typeof options !== 'undefined' ? options : {};
options.toggle_state = 'close';
this.toggle(options);
},
off : function () {}, off : function () {},

View File

@ -4,7 +4,7 @@
Foundation.libs.alert = { Foundation.libs.alert = {
name : 'alert', name : 'alert',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
callback : function () {} callback : function () {}

View File

@ -4,7 +4,7 @@
Foundation.libs.clearing = { Foundation.libs.clearing = {
name : 'clearing', name : 'clearing',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
templates : { templates : {
@ -28,7 +28,7 @@
touch_label : '', touch_label : '',
// event initializers and locks // event initializer and locks
init : false, init : false,
locked : false locked : false
}, },
@ -453,9 +453,9 @@
var caption = $image.attr('data-caption'); var caption = $image.attr('data-caption');
if (caption) { if (caption) {
container var containerPlain = container.get(0);
.html(caption) containerPlain.innerHTML = caption;
.show(); container.show();
} else { } else {
container container
.text('') .text('')

View File

@ -4,7 +4,7 @@
Foundation.libs.dropdown = { Foundation.libs.dropdown = {
name : 'dropdown', name : 'dropdown',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
active_class : 'open', active_class : 'open',
@ -13,6 +13,7 @@
align : 'bottom', align : 'bottom',
is_hover : false, is_hover : false,
hover_timeout : 150, hover_timeout : 150,
no_pip : false,
opened : function () {}, opened : function () {},
closed : function () {} closed : function () {}
}, },
@ -258,7 +259,7 @@
// `this` is the dropdown // `this` is the dropdown
dirs : { dirs : {
// Calculate target offset // Calculate target offset
_base : function (t) { _base : function (t, s) {
var o_p = this.offsetParent(), var o_p = this.offsetParent(),
o = o_p.offset(), o = o_p.offset(),
p = t.offset(); p = t.offset();
@ -275,33 +276,36 @@
//lets see if the panel will be off the screen //lets see if the panel will be off the screen
//get the actual width of the page and store it //get the actual width of the page and store it
var actualBodyWidth; var actualBodyWidth;
var windowWidth = window.innerWidth;
if (document.getElementsByClassName('row')[0]) { if (document.getElementsByClassName('row')[0]) {
actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth; actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
} else { } else {
actualBodyWidth = window.innerWidth; actualBodyWidth = windowWidth;
} }
var actualMarginWidth = (window.innerWidth - actualBodyWidth) / 2; var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;
var actualBoundary = actualBodyWidth; var actualBoundary = actualBodyWidth;
if (!this.hasClass('mega')) { if (!this.hasClass('mega') && !s.ignore_repositioning) {
var outerWidth = this.outerWidth();
var o_left = t.offset().left;
//miss top //miss top
if (t.offset().top <= this.outerHeight()) { if (t.offset().top <= this.outerHeight()) {
p.missTop = true; p.missTop = true;
actualBoundary = window.innerWidth - actualMarginWidth; actualBoundary = windowWidth - actualMarginWidth;
p.leftRightFlag = true; p.leftRightFlag = true;
} }
//miss right //miss right
if (t.offset().left + this.outerWidth() > t.offset().left + actualMarginWidth && t.offset().left - actualMarginWidth > this.outerWidth()) { if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth - o_left) {
p.missRight = true; p.missRight = true;
p.missLeft = false;
} }
//miss left //miss left
if (t.offset().left - this.outerWidth() <= 0) { if (o_left - outerWidth <= 0) {
p.missLeft = true; p.missLeft = true;
p.missRight = false;
} }
} }
@ -310,89 +314,121 @@
top : function (t, s) { top : function (t, s) {
var self = Foundation.libs.dropdown, var self = Foundation.libs.dropdown,
p = self.dirs._base.call(this, t); p = self.dirs._base.call(this, t, s),
tOuterHeight = t.outerHeight(),
tOuterWidth = t.outerWidth(),
thisOuterHeight = this.outerHeight(),
thisOuterWidth = this.outerWidth();
this.addClass('drop-top'); this.addClass('drop-top');
if (p.missTop == true) { if (p.missTop == true) {
p.top = p.top + t.outerHeight() + this.outerHeight(); p.top = p.top + tOuterHeight + thisOuterHeight;
this.removeClass('drop-top'); this.removeClass('drop-top');
} }
if (p.missRight == true) { if (p.missRight == true) {
p.left = p.left - this.outerWidth() + t.outerWidth(); p.left = p.left - thisOuterWidth + tOuterWidth;
} }
if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) { if (!s.no_pip && tOuterWidth < thisOuterWidth || self.small() || this.hasClass(s.mega_menu)) {
self.adjust_pip(this, t, s, p); self.adjust_pip(this, t, s, p);
} }
if (Foundation.rtl) { if (Foundation.rtl) {
return {left : p.left - this.outerWidth() + t.outerWidth(), return {left : p.left - thisOuterWidth + tOuterWidth,
top : p.top - this.outerHeight()}; top : p.top - thisOuterHeight};
} }
return {left : p.left, top : p.top - this.outerHeight()}; return {left : p.left, top : p.top - thisOuterHeight};
}, },
bottom : function (t, s) { bottom : function (t, s) {
var self = Foundation.libs.dropdown, var self = Foundation.libs.dropdown,
p = self.dirs._base.call(this, t); p = self.dirs._base.call(this, t, s),
tOuterHeight = t.outerHeight(),
tOuterWidth = t.outerWidth(),
thisOuterHeight = this.outerHeight(),
thisOuterWidth = this.outerWidth();;
if (p.missRight == true) { if (p.missRight == true) {
p.left = p.left - this.outerWidth() + t.outerWidth(); p.left = p.left - thisOuterWidth + tOuterWidth;
} }
if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) { if (!s.no_pip && tOuterWidth < thisOuterWidth || self.small() || this.hasClass(s.mega_menu)) {
self.adjust_pip(this, t, s, p); self.adjust_pip(this, t, s, p);
} }
if (self.rtl) { if (self.rtl) {
return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()}; return {left : p.left - thisOuterWidth + tOuterWidth, top : p.top + tOuterHeight};
} }
return {left : p.left, top : p.top + t.outerHeight()}; return {left : p.left, top : p.top + tOuterHeight};
}, },
left : function (t, s) { left : function (t, s) {
var p = Foundation.libs.dropdown.dirs._base.call(this, t); var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
var self = Foundation.libs.dropdown,
tOuterHeight = t.outerHeight(),
tOuterWidth = t.outerWidth(),
thisOuterHeight = this.outerHeight(),
thisOuterWidth = this.outerWidth();
this.addClass('drop-left'); this.addClass('drop-left');
if (p.missLeft == true) { if (p.missLeft === true) {
p.left = p.left + this.outerWidth(); p.left = p.left + thisOuterWidth;
p.top = p.top + t.outerHeight(); p.top = p.top + tOuterHeight;
this.removeClass('drop-left'); this.removeClass('drop-left');
} }
return {left : p.left - this.outerWidth(), top : p.top}; if (p.missRight === true && p.missLeft === true && p.leftRightFlag == false) {
p.left = p.left - tOuterWidth;
this.removeClass('drop-left');
self.adjust_pip(this,t,s,p);
}
return {left : p.left - thisOuterWidth, top : p.top};
}, },
right : function (t, s) { right : function (t, s) {
var p = Foundation.libs.dropdown.dirs._base.call(this, t); var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
var self = Foundation.libs.dropdown,
tOuterHeight = t.outerHeight(),
tOuterWidth = t.outerWidth(),
thisOuterHeight = this.outerHeight(),
thisOuterWidth = this.outerWidth();
this.addClass('drop-right'); this.addClass('drop-right');
if (p.missRight == true) { if (p.missRight === true && p.missLeft == false) {
p.left = p.left - this.outerWidth(); p.left = p.left - thisOuterWidth;
p.top = p.top + t.outerHeight(); p.top = p.top + tOuterHeight;
this.removeClass('drop-right'); this.removeClass('drop-right');
} else { } else {
p.triggeredRight = true; p.triggeredRight = true;
} }
var self = Foundation.libs.dropdown; if (p.missLeft === true && p.missRight === true && p.leftRightFlag === false) {
p.left = p.left - thisOuterWidth;
if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) { p.top = p.top + tOuterHeight;
self.adjust_pip(this, t, s, p); this.removeClass('drop-right');
p.triggeredRight = false;
} }
return {left : p.left + t.outerWidth(), top : p.top};
if (tOuterWidth < thisOuterWidth || self.small() || this.hasClass(s.mega_menu)) {
self.adjust_pip(this,t,s,p);
}
return {left : p.left + tOuterWidth, top : p.top};
} }
}, },
// Insert rule to style psuedo elements // Insert rule to style psuedo elements
adjust_pip : function (dropdown, target, settings, position) { adjust_pip : function (dropdown, target, settings, position) {
if (settings.no_pip === true) return;
var sheet = Foundation.stylesheet, var sheet = Foundation.stylesheet,
pip_offset_base = 8; pip_offset_base = 8;

View File

@ -4,7 +4,7 @@
Foundation.libs.equalizer = { Foundation.libs.equalizer = {
name : 'equalizer', name : 'equalizer',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
use_tallest : true, use_tallest : true,

View File

@ -4,7 +4,7 @@
Foundation.libs.interchange = { Foundation.libs.interchange = {
name : 'interchange', name : 'interchange',
version : '5.5.2', version : '5.5.3master',
cache : {}, cache : {},
@ -49,7 +49,8 @@
// }); // });
if (el !== null && /IMG/.test(el[0].nodeName)) { if (el !== null && /IMG/.test(el[0].nodeName)) {
var orig_path = el[0].src; var orig_path = $.each(el, function(){this.src = path;});
// var orig_path = el[0].src;
if (new RegExp(path, 'i').test(orig_path)) { if (new RegExp(path, 'i').test(orig_path)) {
return; return;

View File

@ -6,13 +6,13 @@
Foundation.libs.joyride = { Foundation.libs.joyride = {
name : 'joyride', name : 'joyride',
version : '5.5.2', version : '5.5.3master',
defaults : { defaults : {
expose : false, // turn on or off the expose feature expose : false, // turn on or off the expose feature
modal : true, // Whether to cover page with modal during the tour modal : true, // Whether to cover page with modal during the tour
keyboard : true, // enable left, right and esc keystrokes keyboard : true, // enable left, right and esc keystrokes
tip_location : 'bottom', // 'top' or 'bottom' in relation to parent tip_location : 'bottom', // 'top', 'bottom', 'left' or 'right' in relation to parent
nub_position : 'auto', // override on a per tooltip bases nub_position : 'auto', // override on a per tooltip bases
scroll_speed : 1500, // Page scrolling speed in milliseconds, 0 = no scroll animation scroll_speed : 1500, // Page scrolling speed in milliseconds, 0 = no scroll animation
scroll_animation : 'linear', // supports 'swing' and 'linear', extend with jQuery UI. scroll_animation : 'linear', // supports 'swing' and 'linear', extend with jQuery UI.
@ -323,8 +323,8 @@
this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location]; this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
// scroll and hide bg if not modal // scroll and hide bg if not modal and not expose
if (!/body/i.test(this.settings.$target.selector)) { if (!/body/i.test(this.settings.$target.selector) && !this.settings.expose) {
var joyridemodalbg = $('.joyride-modal-bg'); var joyridemodalbg = $('.joyride-modal-bg');
if (/pop/i.test(this.settings.tipAnimation)) { if (/pop/i.test(this.settings.tipAnimation)) {
joyridemodalbg.hide(); joyridemodalbg.hide();
@ -500,68 +500,68 @@
} }
if (!/body/i.test(this.settings.$target.selector)) { if (!/body/i.test(this.settings.$target.selector)) {
var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0, var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0; leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
if (this.bottom()) {
if (this.rtl) {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
} else {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
left : this.settings.$target.offset().left + leftAdjustment});
}
this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
} else if (this.top()) {
if (this.rtl) {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
} else {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
left : this.settings.$target.offset().left + leftAdjustment});
}
this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
} else if (this.right()) {
if (this.bottom()) {
if (this.rtl) {
this.settings.$next_tip.css({ this.settings.$next_tip.css({
top : this.settings.$target.offset().top + topAdjustment, top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)}); left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
} else {
this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
} else if (this.left()) {
this.settings.$next_tip.css({ this.settings.$next_tip.css({
top : this.settings.$target.offset().top + topAdjustment, top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)}); left : this.settings.$target.offset().left + leftAdjustment});
this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
} }
if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) { this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
$nub.removeClass('bottom')
.removeClass('top')
.removeClass('right')
.removeClass('left');
this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
this.settings.attempts++;
this.pos_default();
} else if (this.top()) {
if (this.rtl) {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
} else {
this.settings.$next_tip.css({
top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
left : this.settings.$target.offset().left + leftAdjustment});
} }
this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
} else if (this.right()) {
this.settings.$next_tip.css({
top : this.settings.$target.offset().top + topAdjustment,
left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)});
this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
} else if (this.left()) {
this.settings.$next_tip.css({
top : this.settings.$target.offset().top + topAdjustment,
left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)});
this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
}
if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) {
$nub.removeClass('bottom')
.removeClass('top')
.removeClass('right')
.removeClass('left');
this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
this.settings.attempts++;
this.pos_default();
}
} else if (this.settings.$li.length) { } else if (this.settings.$li.length) {
this.pos_modal($nub); this.pos_modal($nub);
@ -668,8 +668,8 @@
expose.css({ expose.css({
top : el.offset().top, top : el.offset().top,
left : el.offset().left, left : el.offset().left,
width : el.outerWidth(true), width : el.outerWidth(),
height : el.outerHeight(true) height : el.outerHeight()
}); });
exposeCover = $(this.settings.template.expose_cover); exposeCover = $(this.settings.template.expose_cover);
@ -827,6 +827,10 @@
}, },
corners : function (el) { corners : function (el) {
if (el.length === 0) {
return [false, false, false, false];
}
var w = $(window), var w = $(window),
window_half = w.height() / 2, window_half = w.height() / 2,
//using this to calculate since scroll may not have finished yet. //using this to calculate since scroll may not have finished yet.
@ -924,7 +928,6 @@
$('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride'); $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
$('.joyride-tip-guide, .joyride-modal-bg').remove(); $('.joyride-tip-guide, .joyride-modal-bg').remove();
clearTimeout(this.settings.automate); clearTimeout(this.settings.automate);
this.settings = {};
}, },
reflow : function () {} reflow : function () {}

View File

@ -1,7 +1,7 @@
/* /*
* Foundation Responsive Library * Foundation Responsive Library
* http://foundation.zurb.com * http://foundation.zurb.com
* Copyright 2014, ZURB * Copyright 2015, ZURB
* Free to use under the MIT license. * Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php * http://www.opensource.org/licenses/mit-license.php
*/ */
@ -10,14 +10,12 @@
'use strict'; 'use strict';
var header_helpers = function (class_array) { var header_helpers = function (class_array) {
var i = class_array.length;
var head = $('head'); var head = $('head');
head.prepend($.map(class_array, function (class_name) {
while (i--) { if (head.has('.' + class_name).length === 0) {
if (head.has('.' + class_array[i]).length === 0) { return '<meta class="' + class_name + '" />';
head.append('<meta class="' + class_array[i] + '" />');
} }
} }));
}; };
header_helpers([ header_helpers([
@ -108,7 +106,7 @@
var self = this, var self = this,
bind = function(){ bind = function(){
var $this = S(this), var $this = S(this),
should_bind_events = !$this.data(self.attr_name(true) + '-init'); should_bind_events = !S(self).data(self.attr_name(true) + '-init');
$this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this))); $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));
if (should_bind_events) { if (should_bind_events) {
@ -290,21 +288,30 @@
return string; return string;
} }
function MediaQuery(selector) {
this.selector = selector;
this.query = '';
}
MediaQuery.prototype.toString = function () {
return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''));
};
window.Foundation = { window.Foundation = {
name : 'Foundation', name : 'Foundation',
version : '5.5.2', version : '5.5.3master',
media_queries : { media_queries : {
'small' : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), 'small' : new MediaQuery('.foundation-mq-small'),
'small-only' : S('.foundation-mq-small-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), 'small-only' : new MediaQuery('.foundation-mq-small-only'),
'medium' : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), 'medium' : new MediaQuery('.foundation-mq-medium'),
'medium-only' : S('.foundation-mq-medium-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), 'medium-only' : new MediaQuery('.foundation-mq-medium-only'),
'large' : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), 'large' : new MediaQuery('.foundation-mq-large'),
'large-only' : S('.foundation-mq-large-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), 'large-only' : new MediaQuery('.foundation-mq-large-only'),
'xlarge' : S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), 'xlarge' : new MediaQuery('.foundation-mq-xlarge'),
'xlarge-only' : S('.foundation-mq-xlarge-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''), 'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),
'xxlarge' : S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '') 'xxlarge' : new MediaQuery('.foundation-mq-xxlarge')
}, },
stylesheet : $('<style></style>').appendTo('head')[0].sheet, stylesheet : $('<style></style>').appendTo('head')[0].sheet,
@ -335,7 +342,7 @@
} }
} }
S(window).load(function () { S(window).on('load', function () {
S(window) S(window)
.trigger('resize.fndtn.clearing') .trigger('resize.fndtn.clearing')
.trigger('resize.fndtn.dropdown') .trigger('resize.fndtn.dropdown')

View File

@ -4,7 +4,7 @@
Foundation.libs['magellan-expedition'] = { Foundation.libs['magellan-expedition'] = {
name : 'magellan-expedition', name : 'magellan-expedition',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
active_class : 'active', active_class : 'active',
@ -32,7 +32,7 @@
S(self.scope) S(self.scope)
.off('.magellan') .off('.magellan')
.on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) { .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href^="#"]', function (e) {
var sameHost = ((this.hostname === location.hostname) || !this.hostname), var sameHost = ((this.hostname === location.hostname) || !this.hostname),
samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname), samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'), testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
@ -59,11 +59,10 @@
'scrollTop' : scroll_top 'scrollTop' : scroll_top
}, settings.duration, settings.easing, function () { }, settings.duration, settings.easing, function () {
if (history.pushState) { if (history.pushState) {
history.pushState(null, null, anchor.pathname + '#' + hash); history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);
} else {
location.hash = anchor.pathname + anchor.search + '#' + hash;
} }
else {
location.hash = anchor.pathname + '#' + hash;
}
}); });
} }
}) })
@ -81,7 +80,7 @@
$('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) { $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
var expedition = $(this), var expedition = $(this),
settings = expedition.data('magellan-expedition-init'), settings = expedition.data('magellan-expedition-init'),
styles = expedition.attr('styles'), // save styles styles = expedition.attr('style'), // save styles
top_offset, fixed_top; top_offset, fixed_top;
expedition.attr('style', ''); expedition.attr('style', '');

View File

@ -4,7 +4,7 @@
Foundation.libs.offcanvas = { Foundation.libs.offcanvas = {
name : 'offcanvas', name : 'offcanvas',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
open_method : 'move', open_method : 'move',
@ -20,16 +20,22 @@
S = self.S, S = self.S,
move_class = '', move_class = '',
right_postfix = '', right_postfix = '',
left_postfix = ''; left_postfix = '',
top_postfix = '',
bottom_postfix = '';
if (this.settings.open_method === 'move') { if (this.settings.open_method === 'move') {
move_class = 'move-'; move_class = 'move-';
right_postfix = 'right'; right_postfix = 'right';
left_postfix = 'left'; left_postfix = 'left';
top_postfix = 'top';
bottom_postfix = 'bottom';
} else if (this.settings.open_method === 'overlap_single') { } else if (this.settings.open_method === 'overlap_single') {
move_class = 'offcanvas-overlap-'; move_class = 'offcanvas-overlap-';
right_postfix = 'right'; right_postfix = 'right';
left_postfix = 'left'; left_postfix = 'left';
top_postfix = 'top';
bottom_postfix = 'bottom';
} else if (this.settings.open_method === 'overlap') { } else if (this.settings.open_method === 'overlap') {
move_class = 'offcanvas-overlap'; move_class = 'offcanvas-overlap';
} }
@ -58,6 +64,7 @@
} }
$('.left-off-canvas-toggle').attr('aria-expanded', 'true'); $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
}) })
//end of left canvas
.on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) { .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
self.click_toggle_class(e, move_class + left_postfix); self.click_toggle_class(e, move_class + left_postfix);
if (self.settings.open_method !== 'overlap') { if (self.settings.open_method !== 'overlap') {
@ -81,6 +88,55 @@
} }
$('.right-off-canvas-toggle').attr('aria-expanded', 'true'); $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
}) })
//end of right canvas
.on('click.fndtn.offcanvas', '.top-off-canvas-toggle', function (e) {
self.click_toggle_class(e, move_class + bottom_postfix);
if (self.settings.open_method !== 'overlap') {
S('.top-submenu').removeClass(move_class + bottom_postfix);
}
$('.top-off-canvas-toggle').attr('aria-expanded', 'true');
})
.on('click.fndtn.offcanvas', '.top-off-canvas-menu a', function (e) {
var settings = self.get_settings(e);
var parent = S(this).parent();
if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
self.hide.call(self, move_class + bottom_postfix, self.get_wrapper(e));
parent.parent().removeClass(move_class + bottom_postfix);
} else if (S(this).parent().hasClass('has-submenu')) {
e.preventDefault();
S(this).siblings('.top-submenu').toggleClass(move_class + bottom_postfix);
} else if (parent.hasClass('back')) {
e.preventDefault();
parent.parent().removeClass(move_class + bottom_postfix);
}
$('.top-off-canvas-toggle').attr('aria-expanded', 'true');
})
//end of top canvas
.on('click.fndtn.offcanvas', '.bottom-off-canvas-toggle', function (e) {
self.click_toggle_class(e, move_class + top_postfix);
if (self.settings.open_method !== 'overlap') {
S('.bottom-submenu').removeClass(move_class + top_postfix);
}
$('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
})
.on('click.fndtn.offcanvas', '.bottom-off-canvas-menu a', function (e) {
var settings = self.get_settings(e);
var parent = S(this).parent();
if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
self.hide.call(self, move_class + top_postfix, self.get_wrapper(e));
parent.parent().removeClass(move_class + top_postfix);
} else if (S(this).parent().hasClass('has-submenu')) {
e.preventDefault();
S(this).siblings('.bottom-submenu').toggleClass(move_class + top_postfix);
} else if (parent.hasClass('back')) {
e.preventDefault();
parent.parent().removeClass(move_class + top_postfix);
}
$('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
})
//end of bottom
.on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
self.click_remove_class(e, move_class + left_postfix); self.click_remove_class(e, move_class + left_postfix);
S('.right-submenu').removeClass(move_class + left_postfix); S('.right-submenu').removeClass(move_class + left_postfix);
@ -97,6 +153,23 @@
self.click_remove_class(e, move_class + right_postfix); self.click_remove_class(e, move_class + right_postfix);
$('.right-off-canvas-toggle').attr('aria-expanded', 'false'); $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
} }
})
.on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
self.click_remove_class(e, move_class + top_postfix);
S('.bottom-submenu').removeClass(move_class + top_postfix);
if (bottom_postfix) {
self.click_remove_class(e, move_class + bottom_postfix);
S('.top-submenu').removeClass(move_class + top_postfix);
}
$('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
})
.on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
self.click_remove_class(e, move_class + top_postfix);
$('.top-off-canvas-toggle').attr('aria-expanded', 'false');
if (bottom_postfix) {
self.click_remove_class(e, move_class + bottom_postfix);
$('.bottom-off-canvas-toggle').attr('aria-expanded', 'false');
}
}); });
}, },

View File

@ -407,7 +407,7 @@
Foundation.libs.orbit = { Foundation.libs.orbit = {
name : 'orbit', name : 'orbit',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
animation : 'slide', animation : 'slide',

View File

@ -1,10 +1,12 @@
;(function ($, window, document, undefined) { ;(function ($, window, document, undefined) {
'use strict'; 'use strict';
var openModals = [];
Foundation.libs.reveal = { Foundation.libs.reveal = {
name : 'reveal', name : 'reveal',
version : '5.5.2', version : '5.5.3master',
locked : false, locked : false,
@ -17,6 +19,7 @@
multiple_opened : false, multiple_opened : false,
bg_class : 'reveal-modal-bg', bg_class : 'reveal-modal-bg',
root_element : 'body', root_element : 'body',
no_scroll: false,
open : function(){}, open : function(){},
opened : function(){}, opened : function(){},
close : function(){}, close : function(){},
@ -47,7 +50,7 @@
S = self.S; S = self.S;
S(this.scope) S(this.scope)
.off('.reveal') .off('.fndtn.reveal')
.on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) { .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
e.preventDefault(); e.preventDefault();
@ -155,7 +158,7 @@
settings = settings || this.settings; settings = settings || this.settings;
if (modal.hasClass('open') && target.attr('data-reveal-id') == modal.attr('id')) { if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
return self.close(modal); return self.close(modal);
} }
@ -169,6 +172,14 @@
modal.attr('tabindex','0').attr('aria-hidden','false'); modal.attr('tabindex','0').attr('aria-hidden','false');
if(settings.no_scroll){//added 10/9/15, prevents annoying scroll positioning bug with position: absolute; reveals
var $body = $('body');
$body.on('open.fndtn.reveal', function(){
$body.css('overflow', 'hidden')
.off('open.fndtn.reveal');
});
}
this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open
// Prevent namespace event from triggering twice // Prevent namespace event from triggering twice
@ -176,7 +187,8 @@
if (e.namespace !== 'fndtn.reveal') return; if (e.namespace !== 'fndtn.reveal') return;
}); });
modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal'); modal.trigger('open.fndtn.reveal');
if (open_modal.length < 1) { if (open_modal.length < 1) {
this.toggle_bg(modal, true); this.toggle_bg(modal, true);
@ -188,16 +200,25 @@
}; };
} }
if (typeof ajax_settings === 'undefined' || !ajax_settings.url) { var openModal = function() {
if (open_modal.length > 0) { if(open_modal.length > 0) {
if (settings.multiple_opened) { if(settings.multiple_opened) {
self.to_back(open_modal); self.to_back(open_modal);
} else { } else {
self.hide(open_modal, settings.css.close); self.hide(open_modal, settings.css.close);
} }
} }
this.show(modal, settings.css.open); // bl: add the open_modal that isn't already in the background to the openModals array
if(settings.multiple_opened) {
openModals.push(modal);
}
self.show(modal, settings.css.open);
};
if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
openModal();
} else { } else {
var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null; var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
$.extend(ajax_settings, { $.extend(ajax_settings, {
@ -218,14 +239,7 @@
self.S(modal).foundation('section', 'reflow'); self.S(modal).foundation('section', 'reflow');
self.S(modal).children().foundation(); self.S(modal).children().foundation();
if (open_modal.length > 0) { openModal();
if (settings.multiple_opened) {
self.to_back(open_modal);
} else {
self.hide(open_modal, settings.css.close);
}
}
self.show(modal, settings.css.open);
} }
}); });
@ -252,6 +266,14 @@
modal.removeAttr('tabindex','0').attr('aria-hidden','true'); modal.removeAttr('tabindex','0').attr('aria-hidden','true');
if(settings.no_scroll){//added 10/9/15, prevents annoying scroll positioning bug with position: absolute; reveals
var $body = $('body');
$body.on('close.fndtn.reveal', function(){
$body.css('overflow', 'auto')
.off('close.fndtn.reveal');
});
}
this.locked = true; this.locked = true;
this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
@ -263,8 +285,27 @@
} }
if (settings.multiple_opened) { if (settings.multiple_opened) {
var isCurrent = modal.is(':not(.toback)');
self.hide(modal, settings.css.close, settings); self.hide(modal, settings.css.close, settings);
self.to_front($($.makeArray(open_modals).reverse()[1])); if(isCurrent) {
// remove the last modal since it is now closed
openModals.pop();
} else {
// if this isn't the current modal, then find it in the array and remove it
openModals = $.grep(openModals, function(elt) {
var isThis = elt[0]===modal[0];
if(isThis) {
// since it's not currently in the front, put it in the front now that it is hidden
// so that if it's re-opened, it won't be .toback
self.to_front(modal);
}
return !isThis;
});
}
// finally, show the next modal in the stack, if there is one
if(openModals.length>0) {
self.to_front(openModals[openModals.length - 1]);
}
} else { } else {
self.hide(open_modals, settings.css.close, settings); self.hide(open_modals, settings.css.close, settings);
} }
@ -337,8 +378,9 @@
}, settings.animation_speed / 2); }, settings.animation_speed / 2);
} }
css.top = $(window).scrollTop() + el.data('css-top') + 'px';
if (animData.fade) { if (animData.fade) {
css.top = $(window).scrollTop() + el.data('css-top') + 'px';
var end_css = {opacity: 1}; var end_css = {opacity: 1};
return setTimeout(function () { return setTimeout(function () {

View File

@ -4,13 +4,13 @@
Foundation.libs.slider = { Foundation.libs.slider = {
name : 'slider', name : 'slider',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
start : 0, start : 0,
end : 100, end : 100,
step : 1, step : 1,
precision : null, precision : 0,
initial : null, initial : null,
display_selector : '', display_selector : '',
vertical : false, vertical : false,
@ -28,7 +28,6 @@
events : function () { events : function () {
var self = this; var self = this;
$(this.scope) $(this.scope)
.off('.slider') .off('.slider')
.on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider', .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
@ -53,6 +52,23 @@
} }
}) })
.on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) { .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
if(!self.cache.active) {
// if the user has just clicked into the slider without starting to drag the handle
var slider = $(e.target).attr('role') === 'slider' ? $(e.target) : $(e.target).closest('.range-slider').find("[role='slider']");
if (slider.length && (!slider.parent().hasClass('disabled') && !slider.parent().attr('disabled'))) {
self.set_active_slider(slider);
if ($.data(self.cache.active[0], 'settings').vertical) {
var scroll_offset = 0;
if (!e.pageY) {
scroll_offset = window.scrollY;
}
self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
} else {
self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
}
}
}
self.remove_active_slider(); self.remove_active_slider();
}) })
.on('change.fndtn.slider', function (e) { .on('change.fndtn.slider', function (e) {
@ -72,9 +88,8 @@
if (settings.display_selector != '') { if (settings.display_selector != '') {
$(settings.display_selector).each(function(){ $(settings.display_selector).each(function(){
if (this.hasOwnProperty('value')) { if ($(this).attr('value')) {
$(this).change(function(){ $(this).off('change').on('change', function () {
// is there a better way to do this?
slider.foundation("slider", "set_value", $(this).val()); slider.foundation("slider", "set_value", $(this).val());
}); });
} }

View File

@ -4,7 +4,7 @@
Foundation.libs.tab = { Foundation.libs.tab = {
name : 'tab', name : 'tab',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
active_class : 'active', active_class : 'active',
@ -20,16 +20,12 @@
var self = this, var self = this,
S = this.S; S = this.S;
// Store the default active tabs which will be referenced when the // Store the default active tabs which will be referenced when the
// location hash is absent, as in the case of navigating the tabs and // location hash is absent, as in the case of navigating the tabs and
// returning to the first viewing via the browser Back button. // returning to the first viewing via the browser Back button.
S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () { S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
self.default_tab_hashes.push(this.hash); self.default_tab_hashes.push(this.hash);
}); });
// store the initial href, which is used to allow correct behaviour of the
// browser back button when deep linking is turned on.
self.entry_location = window.location.href;
this.bindings(method, options); this.bindings(method, options);
this.handle_location_hash_change(); this.handle_location_hash_change();
@ -40,26 +36,29 @@
S = this.S; S = this.S;
var usual_tab_behavior = function (e, target) { var usual_tab_behavior = function (e, target) {
var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'); var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
if (!settings.is_hover || Modernizr.touch) { if (!settings.is_hover || Modernizr.touch) {
// if user did not pressed tab key, prevent default action
var keyCode = e.keyCode || e.which;
if (keyCode !== 9) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
self.toggle_active_tab(S(target).parent());
} }
}; self.toggle_active_tab(S(target).parent());
}
};
S(this.scope) S(this.scope)
.off('.tab') .off('.tab')
// Key event: focus/tab key // Key event: focus/tab key
.on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) { .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
var el = this;
var keyCode = e.keyCode || e.which; var keyCode = e.keyCode || e.which;
// if user pressed tab key // if user pressed tab key
if (keyCode == 9) { if (keyCode === 13 || keyCode === 32) { // enter or space
e.preventDefault(); var el = this;
// TODO: Change usual_tab_behavior into accessibility function? usual_tab_behavior(e, el);
usual_tab_behavior(e, el); }
}
}) })
// Click event: tab title // Click event: tab title
.on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) { .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
@ -103,19 +102,19 @@
var hash_element = S(hash); var hash_element = S(hash);
if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) { if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) {
// Tab content div // Tab content div
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent()); self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=\\' + hash + ']').parent());
} else { } else {
// Not the tab content div. If inside the tab content, find the // Not the tab content div. If inside the tab content, find the
// containing tab and toggle it as active. // containing tab and toggle it as active.
var hash_tab_container_id = hash_element.closest('.content').attr('id'); var hash_tab_container_id = hash_element.closest('.content').attr('id');
if (hash_tab_container_id != undefined) { if (hash_tab_container_id != undefined) {
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash); self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=\\#' + hash_tab_container_id + ']').parent(), hash);
} }
} }
} else { } else {
// Reference the default tab hashes which were initialized in the init function // Reference the default tab hashes which were initialized in the init function
for (var ind = 0; ind < self.default_tab_hashes.length; ind++) { for (var ind = 0; ind < self.default_tab_hashes.length; ind++) {
self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent()); self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=\\' + self.default_tab_hashes[ind] + ']').parent());
} }
} }
} }
@ -181,10 +180,9 @@
go_to_hash = function(hash) { go_to_hash = function(hash) {
// This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
// the user would get continually redirected to the default hash. // the user would get continually redirected to the default hash.
var is_entry_location = window.location.href === self.entry_location, var default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : 'fndtn-' + self.default_tab_hashes[0].replace('#', '');
default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : is_entry_location ? window.location.hash :'fndtn-' + self.default_tab_hashes[0].replace('#', '')
if (!(is_entry_location && hash === default_hash)) { if (hash !== default_hash || window.location.hash) {
window.location.hash = hash; window.location.hash = hash;
} }
}; };
@ -224,8 +222,8 @@
tab.addClass(settings.active_class).triggerHandler('opened'); tab.addClass(settings.active_class).triggerHandler('opened');
tab_link.attr({'aria-selected' : 'true', tabindex : 0}); tab_link.attr({'aria-selected' : 'true', tabindex : 0});
siblings.removeClass(settings.active_class) siblings.removeClass(settings.active_class)
siblings.find('a').attr({'aria-selected' : 'false', tabindex : -1}); siblings.find('a').attr({'aria-selected' : 'false'/*, tabindex : -1*/});
target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true', tabindex : -1}); target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true'/*, tabindex : -1*/});
target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex'); target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
settings.callback(tab); settings.callback(tab);
target.triggerHandler('toggled', [target]); target.triggerHandler('toggled', [target]);

View File

@ -4,7 +4,7 @@
Foundation.libs.tooltip = { Foundation.libs.tooltip = {
name : 'tooltip', name : 'tooltip',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
additional_inheritable_classes : [], additional_inheritable_classes : [],
@ -13,6 +13,8 @@
touch_close_text : 'Tap To Close', touch_close_text : 'Tap To Close',
disable_for_touch : false, disable_for_touch : false,
hover_delay : 200, hover_delay : 200,
fade_in_duration : 150,
fade_out_duration : 150,
show_on : 'all', show_on : 'all',
tip_template : function (selector, content) { tip_template : function (selector, content) {
return '<span data-selector="' + selector + '" id="' + selector + '" class="' return '<span data-selector="' + selector + '" id="' + selector + '" class="'
@ -192,7 +194,7 @@
tip_template = window[settings.tip_template]; tip_template = window[settings.tip_template];
} }
var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())), var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).text())),
classes = this.inheritable_classes($target); classes = this.inheritable_classes($target);
$tip.addClass(classes).appendTo(settings.append_to); $tip.addClass(classes).appendTo(settings.append_to);
@ -208,14 +210,14 @@
}, },
reposition : function (target, tip, classes) { reposition : function (target, tip, classes) {
var width, nub, nubHeight, nubWidth, column, objPos; var width, nub, nubHeight, nubWidth, objPos;
tip.css('visibility', 'hidden').show(); tip.css('visibility', 'hidden').show();
width = target.data('width'); width = target.data('width');
nub = tip.children('.nub'); nub = tip.children('.nub');
nubHeight = nub.outerHeight(); nubHeight = nub.outerHeight();
nubWidth = nub.outerHeight(); nubWidth = nub.outerWidth();
if (this.small()) { if (this.small()) {
tip.css({'width' : '100%'}); tip.css({'width' : '100%'});
@ -231,39 +233,46 @@
'right' : (right) ? right : 'auto' 'right' : (right) ? right : 'auto'
}).end(); }).end();
}; };
var o_top = target.offset().top;
var o_left = target.offset().left;
var outerHeight = target.outerHeight();
objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left); objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
if (this.small()) { if (this.small()) {
objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', 12.5, $(this.scope).width()); objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', 12.5, $(this.scope).width());
tip.addClass('tip-override'); tip.addClass('tip-override');
objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left); objPos(nub, -nubHeight, 'auto', 'auto', o_left);
} else { } else {
var left = target.offset().left;
if (Foundation.rtl) { if (Foundation.rtl) {
nub.addClass('rtl'); nub.addClass('rtl');
left = target.offset().left + target.outerWidth() - tip.outerWidth(); o_left = o_left + target.outerWidth() - tip.outerWidth();
} }
objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', left); objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
// reset nub from small styles, if they've been applied // reset nub from small styles, if they've been applied
if (nub.attr('style')) { if (nub.attr('style')) {
nub.removeAttr('style'); nub.removeAttr('style');
} }
tip.removeClass('tip-override'); tip.removeClass('tip-override');
var tip_outerHeight = tip.outerHeight();
if (classes && classes.indexOf('tip-top') > -1) { if (classes && classes.indexOf('tip-top') > -1) {
if (Foundation.rtl) { if (Foundation.rtl) {
nub.addClass('rtl'); nub.addClass('rtl');
} }
objPos(tip, (target.offset().top - tip.outerHeight()), 'auto', 'auto', left) objPos(tip, (o_top - tip_outerHeight), 'auto', 'auto', o_left)
.removeClass('tip-override'); .removeClass('tip-override');
} else if (classes && classes.indexOf('tip-left') > -1) { } else if (classes && classes.indexOf('tip-left') > -1) {
objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left - tip.outerWidth() - nubHeight)) objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left - tip.outerWidth() - nubHeight))
.removeClass('tip-override'); .removeClass('tip-override');
nub.removeClass('rtl'); nub.removeClass('rtl');
} else if (classes && classes.indexOf('tip-right') > -1) { } else if (classes && classes.indexOf('tip-right') > -1) {
objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left + target.outerWidth() + nubHeight)) objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left + target.outerWidth() + nubHeight))
.removeClass('tip-override'); .removeClass('tip-override');
nub.removeClass('rtl'); nub.removeClass('rtl');
} }
@ -307,19 +316,19 @@
show : function ($target) { show : function ($target) {
var $tip = this.getTip($target); var $tip = this.getTip($target);
if ($target.data('tooltip-open-event-type') == 'touch') { if ($target.data('tooltip-open-event-type') == 'touch') {
this.convert_to_touch($target); this.convert_to_touch($target);
} }
this.reposition($target, $tip, $target.attr('class')); this.reposition($target, $tip, $target.attr('class'));
$target.addClass('open'); $target.addClass('open');
$tip.fadeIn(150); $tip.fadeIn(this.settings.fade_in_duration);
}, },
hide : function ($target) { hide : function ($target) {
var $tip = this.getTip($target); var $tip = this.getTip($target);
$tip.fadeOut(150, function () {
$tip.fadeOut(this.settings.fade_out_duration, function () {
$tip.find('.tap-to-close').remove(); $tip.find('.tap-to-close').remove();
$tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose'); $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
$target.removeClass('open'); $target.removeClass('open');

View File

@ -4,7 +4,7 @@
Foundation.libs.topbar = { Foundation.libs.topbar = {
name : 'topbar', name : 'topbar',
version : '5.5.2', version : '5.5.3master',
settings : { settings : {
index : 0, index : 0,
@ -134,7 +134,7 @@
} }
} }
} else { } else {
if (self.is_sticky(topbar, topbar.parent(), settings)) { if (self.is_sticky(topbar, topbar.parent(), settings) && topbar.parent().offset().top === 0) {
topbar.parent().addClass('fixed'); topbar.parent().addClass('fixed');
} }
@ -165,17 +165,17 @@
self.toggle(this); self.toggle(this);
}) })
.on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) { .on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) {
var li = $(this).closest('li'), var li = $(this).closest('li'),
topbar = li.closest('[' + self.attr_name() + ']'), topbar = li.closest('[' + self.attr_name() + ']'),
settings = topbar.data(self.attr_name(true) + '-init'); settings = topbar.data(self.attr_name(true) + '-init');
if (settings.dropdown_autoclose && settings.is_hover) { if (settings.dropdown_autoclose && settings.is_hover) {
var hoverLi = $(this).closest('.hover'); var hoverLi = $(this).closest('.hover');
hoverLi.removeClass('hover'); hoverLi.removeClass('hover');
} }
if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) { if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
self.toggle(); self.toggle();
} }
}) })
.on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) { .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
@ -199,7 +199,7 @@
e.stopImmediatePropagation(); e.stopImmediatePropagation();
if (li.hasClass('hover')) { if (li.hasClass('hover') && (settings.is_hover || li.children('a').first().hasClass('last-clicked'))) {
li li
.removeClass('hover') .removeClass('hover')
.find('li') .find('li')
@ -214,6 +214,10 @@
if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) { if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
e.preventDefault(); e.preventDefault();
if(!settings.is_hover){
topbar.find('.last-clicked').removeClass('last-clicked');
target.addClass('last-clicked');
}
} }
} }
}) })
@ -245,19 +249,25 @@
S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () { S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
self.resize.call(self); self.resize.call(self);
}, 50)).trigger('resize.fndtn.topbar').load(function () { }, 50)).trigger('resize.fndtn.topbar').on('load', function () {
// Ensure that the offset is calculated after all of the pages resources have loaded // Ensure that the offset is calculated after all of the pages resources have loaded
S(this).trigger('resize.fndtn.topbar'); S(this).trigger('resize.fndtn.topbar');
}); });
S('body').off('.topbar').on('click.fndtn.topbar', function (e) { S('body').off('.topbar').on('click.fndtn.topbar', function (e) {
var parent = S(e.target).closest('li').closest('li.hover'); var parent = S(e.target).closest('li').closest('li.hover'),
topbar = S(e.target).closest('[' + self.attr_name() + ']'),
settings = topbar.data(self.attr_name(true) + '-init');
if (parent.length > 0) { if (parent.length > 0) {
return; return;
} }
S('[' + self.attr_name() + '] li.hover').removeClass('hover'); S('[' + self.attr_name() + '] li.hover').removeClass('hover');
if(settings && !settings.is_hover){
S('[' + self.attr_name() + '] a.last-clicked').removeClass('last-clicked');
}
}); });
// Go up a level on Click // Go up a level on Click
@ -298,15 +308,14 @@
$(this).parents('.has-dropdown').addClass('hover'); $(this).parents('.has-dropdown').addClass('hover');
}) })
.blur(function () { .blur(function () {
$(this).parents('.has-dropdown').removeClass('hover'); $(this).removeClass('last-clicked').parents('.has-dropdown').removeClass('hover');
}); });
}, },
resize : function () { resize : function () {
var self = this; var self = this;
self.S('[' + this.attr_name() + ']').each(function () { self.S('[' + this.attr_name() + ']').each(function () {
var topbar = self.S(this), var topbar = self.S(this);
settings = topbar.data(self.attr_name(true) + '-init');
var stickyContainer = topbar.parent('.' + self.settings.sticky_class); var stickyContainer = topbar.parent('.' + self.settings.sticky_class);
var stickyOffset; var stickyOffset;
@ -324,7 +333,7 @@
} }
} }
if (self.is_sticky(topbar, stickyContainer, settings)) { if (self.is_sticky(topbar, stickyContainer, self.settings)) {
if (stickyContainer.hasClass('fixed')) { if (stickyContainer.hasClass('fixed')) {
// Remove the fixed to allow for correct calculation of the offset. // Remove the fixed to allow for correct calculation of the offset.
stickyContainer.removeClass('fixed'); stickyContainer.removeClass('fixed');
@ -377,14 +386,14 @@
if (!$dropdown.find('.title.back').length) { if (!$dropdown.find('.title.back').length) {
if (settings.mobile_show_parent_link == true && url) { if (settings.mobile_show_parent_link === true && url) {
$titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>'); $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
} else { } else {
$titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>'); $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
} }
// Copy link to subnav // Copy link to subnav
if (settings.custom_back_text == true) { if (settings.custom_back_text === true) {
$('h5>a', $titleLi).html(settings.back_text); $('h5>a', $titleLi).html(settings.back_text);
} else { } else {
$('h5>a', $titleLi).html('&laquo; ' + $link.html()); $('h5>a', $titleLi).html('&laquo; ' + $link.html());

View File

@ -1,11 +1,6 @@
jQuery(document).ready(function() { jQuery(document).ready(function() {
// Add the 'less than IE9' class to appropriate version of IE by checking for their support of cssFloat (true in v9)
if (!jQuery.support.cssFloat) { jQuery('html').addClass('lt-ie9').addClass('no-js'); }
jQuery(document).foundation(function (response) { jQuery(document).foundation(function (response) {
// console.log(response.errors); < this line will produce error in ie9!
if (window.console) console.log(response.errors); if (window.console) console.log(response.errors);
}); });
@ -16,63 +11,4 @@ jQuery(document).ready(function() {
jQuery("#pt-notifications-alert").prependTo("#echo-notifications-alerts"); jQuery("#pt-notifications-alert").prependTo("#echo-notifications-alerts");
jQuery("#pt-notifications-notice").prependTo("#echo-notifications-notice"); jQuery("#pt-notifications-notice").prependTo("#echo-notifications-notice");
// Append font-awesome icons
jQuery('[id^=ca-nstab] a').prepend('<div id="drop-icon"><i class="fa fa-file fa-fw"></i></div>')
jQuery('li#ca-talk a').prepend('<div id="drop-icon"><i class="fa fa-comments-o fa-fw"></i></div>')
jQuery('li#ca-form_edit a').prepend('<div id="drop-icon"><i class="fa fa-pencil-square fa-fw"></i></div>')
jQuery('li#ca-history a').prepend('<div id="drop-icon"><i class="fa fa-archive fa-fw"></i></div>')
jQuery('li#ca-delete a').prepend('<div id="drop-icon"><i class="fa fa-trash-o fa-fw"></i></div>')
jQuery('li#ca-move a').prepend('<div id="drop-icon"><i class="fa fa-truck fa-fw"></i></div>')
jQuery('li#ca-protect a').prepend('<div id="drop-icon"><i class="fa fa-shield fa-fw"></i></div>')
jQuery('li#ca-unprotect a').prepend('<div id="drop-icon"><i class="fa fa-shield fa-fw"></i></div>')
jQuery('li#ca-watch a').prepend('<div id="drop-icon"><i class="fa fa-star-o fa-fw"></i></div>')
jQuery('li#ca-unwatch a').prepend('<div id="drop-icon"><i class="fa fa-star fa-fw"></i></div>')
jQuery('li#ca-purge a').prepend('<div id="drop-icon"><i class="fa fa-refresh fa-fw"></i></div>')
jQuery('li#ca-undelete a').prepend('<div id="drop-icon"><i class="fa fa-undo fa-fw"></i></div>')
jQuery('li#ca-ask_delete_permanently a').prepend('<div id="drop-icon"><i class="fa fa-cut fa-fw"></i></div>')
if ( jQuery( '#ca-addsection' ).length ) {
jQuery('li#ca-addsection a').html('<div id="drop-icon"><i class="fa fa-plus fa-fw"></i></div>' + jQuery('li#ca-addsection a').attr('title').replace(/\[.+/g,""))
}
jQuery('li#pt-uls a').prepend('<div id="drop-icon"><i class="fa fa-book fa-fw"></i></div>')
jQuery('li#pt-userpage a').prepend('<div id="drop-icon"><i class="fa fa-user fa-fw"></i></div>')
jQuery('li#pt-mytalk a').prepend('<div id="drop-icon"><i class="fa fa-comments fa-fw"></i></div>')
jQuery('li#pt-adminlinks a').prepend('<div id="drop-icon"><i class="fa fa-bolt fa-fw"></i></div>')
jQuery('li#pt-preferences a').prepend('<div id="drop-icon"><i class="fa fa-ellipsis-h fa-fw"></i></div>')
jQuery('li#pt-watchlist a').prepend('<div id="drop-icon"><i class="fa fa-th-list fa-fw"></i></div>')
jQuery('li#pt-mycontris a').prepend('<div id="drop-icon"><i class="fa fa-smile-o fa-fw"></i></div>')
jQuery('li#pt-logout a').prepend('<div id="drop-icon"><i class="fa fa-power-off fa-fw"></i></div>')
jQuery('li#t-smwbrowselink a').prepend('<div id="drop-icon"><i class="fa fa-eye fa-fw"></i></div>')
jQuery('li#t-whatlinkshere a').prepend('<div id="drop-icon"><i class="fa fa-arrows fa-fw"></i></div>')
jQuery('li#t-blockip a').prepend('<div id="drop-icon"><i class="fa fa-ban fa-fw"></i></div>')
jQuery('li#t-recentchangeslinked a').prepend('<div id="drop-icon"><i class="fa fa-bars fa-fw"></i></div>')
jQuery('li#t-contributions a').prepend('<div id="drop-icon"><i class="fa fa-smile-o fa-fw"></i></div>')
jQuery('li#t-log a').prepend('<div id="drop-icon"><i class="fa fa-bars fa-fw"></i></div>')
jQuery('li#t-emailuser a').prepend('<div id="drop-icon"><i class="fa fa-envelope fa-fw"></i></div>')
jQuery('li#t-userrights a').prepend('<div id="drop-icon"><i class="fa fa-gavel fa-fw"></i></div>')
jQuery('li#t-upload a').prepend('<div id="drop-icon"><i class="fa fa-upload fa-fw"></i></div>')
jQuery('li#t-specialpages a').prepend('<div id="drop-icon"><i class="fa fa-magic fa-fw"></i></div>')
jQuery('li#t-print a').prepend('<div id="drop-icon"><i class="fa fa-print fa-fw"></i></div>')
jQuery('li#t-permalink a').prepend('<div id="drop-icon"><i class="fa fa-dot-circle-o fa-fw"></i></div>')
jQuery('li#t-info a').prepend('<div id="drop-icon"><i class="fa fa-info fa-fw"></i></div>')
jQuery('li#t-cite a').prepend('<div id="drop-icon"><i class="fa fa-quote-left fa-fw"></i></div>')
jQuery('li#feedlinks a').prepend('<div id="drop-icon"><i class="fa fa-rss fa-fw"></i></div>')
jQuery('li#n-recentchanges a').prepend('<div id="drop-icon"><i class="fa fa-tasks fa-fw"></i></div>')
jQuery('li#n-help a').prepend('<div id="drop-icon"><i class="fa fa-question fa-fw"></i></div>')
jQuery('li#n-randompage a').prepend('<div id="drop-icon"><i class="fa fa-random fa-fw"></i></div>')
// Turn categories into labels
jQuery('#mw-normal-catlinks ul li a').addClass('label');
});
// Have to wait until the window is fully loaded because of Visual Editor to prepend icons for editing
jQuery(window).load(function() {
jQuery('li#ca-ve-edit a').prepend('<div id="drop-icon"><i class="fa fa-pencil fa-fw"></i></div>')
jQuery('li#ca-viewsource a').prepend('<div id="drop-icon"><i class="fa fa-book fa-fw"></i></div>')
jQuery('li#ca-edit a').prepend('<div id="drop-icon"><i class="fa fa-pencil-square-o fa-fw"></i></div>')
}); });

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,69 @@
.side-nav li a:before,
#drop1 li a:before,
.right-off-canvas-menu li a:before,
.left-off-canvas-menu li a:before {
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
margin-right: 5px;
display: inline-block;
width: 1em;
}
/* -- Navigation -- */
#n-mainpage-description a:before {content: "\f015";}
#n-recentchanges a:before {content: "\f0ae";}
#n-randompage a:before {content: "\f074";}
#n-help a:before {content: "\f128";}
/* -- Toolbox -- */
#t-whatlinkshere a:before {content: "\f047";}
#t-recentchangeslinked a:before {content: "\f0c9";}
#t-specialpages a:before {content: "\f0d0";}
#t-print a:before {content: "\f02f";}
#t-permalink a:before {content: "\f192";}
#t-info a:before {content: "\f129";}
/* -- Actions -- */
#ca-nstab-main a:before {content: "\f015";}
#ca-talk a:before {content: "\f0e6";}
#ca-edit a:before {content: "\f044";}
#ca-history a:before {content: "\f187";}
#ca-delete a:before {content: "\f014";}
#ca-move a:before {content: "\f0d1";}
#ca-protect a:before {content: "\f132";}
#ca-unprotect a:before {content: "\f132";}
#ca-watch a:before {content: "\f006";}
#ca-unwatch a:before {content: "\f005";}
#ca-ve-edit a:before {content: "\f040";}
#ca-viewsource a:before {content: "\f02d";}
#ca-form_edit a:before {content: "\f14b";}
#ca-purge a:before {content: "\f021";}
#ca-undelete a:before {content: "\f0e2";}
#ca-ask_delete_permanently a:before {content: "\f0c4";}
#ca-addsection a:before {content: "\f067";}
/* -- Usermenu -- */
#pt-userpage a:before {content: "\f007";}
#pt-mytalk a:before {content: "\f086";}
#pt-adminlinks a:before {content: "\f0e7";}
#pt-preferences a:before {content: "\f141";}
#pt-watchlist a:before {content: "\f00b";}
#pt-mycontris a:before {content: "\f118";}
#pt-logout a:before {content: "\f011";}
#pt-uls a:before {content: "\f02d";}
#t-smwbrowselink a:before {content: "\f06e";}
#t-blockip a:before {content: "\f05e";}
#t-contributions a:before {content: "\f118";}
#t-log a:before {content: "\f0c9";}
#t-emailuser a:before {content: "\f0e0";}
#t-userrights a:before {content: "\f0e3";}
#t-upload a:before {content: "\f093";}
#t-cite a:before {content: "\f10d";}
#feedlinks a:before {content: "\f09e";}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -73,7 +73,6 @@ body.action-formedit .row.hide-on-form-edit { display: none;}
#p-cactions #drop1 { #p-cactions #drop1 {
z-index: 1000; z-index: 1000;
white-space: nowrap; white-space: nowrap;
border: 1px solid cyan;
} }
#p-cactions #drop1 a { #p-cactions #drop1 a {
width: 100%; width: 100%;
@ -648,113 +647,6 @@ span.smwttactiveinline span.smwbuiltin {
div.mw-htmlform-field-HTMLCheckField div.mw-label { height:0; } div.mw-htmlform-field-HTMLCheckField div.mw-label { height:0; }
/* ZUBR IE8 FIXES */
/* GRID: https://gist.github.com/zurbchris/5068210 */
.lt-ie9 .row { width: 940px; max-width: 100%; min-width: 768px; margin: 0 auto; }
.lt-ie9 .row .row { width: auto; max-width: none; min-width: 0; margin: 0 -15px; }
.lt-ie9 .row.large-collapse .column,
.lt-ie9 .row.large-collapse .columns { padding: 0; }
.lt-ie9 .row .row { width: auto; max-width: none; min-width: 0; margin: 0 -15px; }
.lt-ie9 .row .row.large-collapse { margin: 0; }
.lt-ie9 .column, .lt-ie9 .columns { float: left; min-height: 1px; padding: 0 15px; position: relative; }
.lt-ie9 .column.large-centered, .columns.large-centered { float: none; margin: 0 auto; }
.lt-ie9 [class*="column"] + [class*="column"]:last-child { float: right; }
.lt-ie9 [class*="column"] + [class*="column"].end { float: left; }
.lt-ie9 .large-1,
.lt-ie9 .row .large-1 { width: 8.33333%; }
.lt-ie9 .large-2,
.lt-ie9 .row .large-2 { width: 16.66667%; }
.lt-ie9 .large-3,
.lt-ie9 .row .large-3 { width: 25%; }
.lt-ie9 .large-4,
.lt-ie9 .row .large-4 { width: 33.33333%; }
.lt-ie9 .large-5,
.lt-ie9 .row .large-5 { width: 41.66667%; }
.lt-ie9 .large-6,
.lt-ie9 .row .large-6 { width: 50%; }
.lt-ie9 .large-7,
.lt-ie9 .row .large-7 { width: 58.33333%; }
.lt-ie9 .large-8,
.lt-ie9 .row .large-8 { width: 66.66667%; }
.lt-ie9 .large-9,
.lt-ie9 .row .large-9 { width: 75%; }
.lt-ie9 .large-10,
.lt-ie9 .row .large-10 { width: 83.33333%; }
.lt-ie9 .large-11,
.lt-ie9 .row .large-11 { width: 91.66667%; }
.lt-ie9 .large-12,
.lt-ie9 .row .large-12 { width: 100%; }
.lt-ie9 .row .large-offset-1 { margin-left: 8.33333%; }
.lt-ie9 .row .large-offset-2 { margin-left: 16.66667%; }
.lt-ie9 .row .large-offset-3 { margin-left: 25%; }
.lt-ie9 .row .large-offset-4 { margin-left: 33.33333%; }
.lt-ie9 .row .large-offset-5 { margin-left: 41.66667%; }
.lt-ie9 .row .large-offset-6 { margin-left: 50%; }
.lt-ie9 .row .large-offset-7 { margin-left: 58.33333%; }
.lt-ie9 .row .large-offset-8 { margin-left: 66.66667%; }
.lt-ie9 .row .large-offset-9 { margin-left: 75%; }
.lt-ie9 .row .large-offset-10 { margin-left: 83.33333%; }
.lt-ie9 .pull-2 { right: 16.66667%; }
.lt-ie9 .pull-3 { right: 25%; }
.lt-ie9 .pull-4 { right: 33.33333%; }
.lt-ie9 .pull-5 { right: 41.66667%; }
.lt-ie9 .pull-6 { right: 50%; }
.lt-ie9 .pull-7 { right: 58.33333%; }
.lt-ie9 .pull-8 { right: 66.66667%; }
.lt-ie9 .pull-9 { right: 75%; }
.lt-ie9 .pull-10 { right: 83.33333%; }
.lt-ie9 .push-2 { left: 16.66667%; }
.lt-ie9 .push-3 { left: 25%; }
.lt-ie9 .push-4 { left: 33.33333%; }
.lt-ie9 .push-5 { left: 41.66667%; }
.lt-ie9 .push-6 { left: 50%; }
.lt-ie9 .push-7 { left: 58.33333%; }
.lt-ie9 .push-8 { left: 66.66667%; }
.lt-ie9 .push-9 { left: 75%; }
.lt-ie9 .push-10 { left: 83.33333%; }
/* Nicolas Gallagher's micro clearfix */
.lt-ie9 .row { *zoom: 1; }
.lt-ie9 .row:before, .row:after { content: " "; display: table; }
.lt-ie9 .row:after { clear: both; }
/* END IE8 GRID */
.lt-ie9 .hide-for-small { display: block !important; }
/* TOP NAV */
.lt-ie9 .top-bar-section {
display:block;
}
.lt-ie9 .top-bar-section ul {
height: auto;
width: 100%;
}
.lt-ie9 .top-bar .top-bar-section ul,
.lt-ie9 .top-bar .top-bar-section ul li {
float: left;
display: inline;
}
/* END OTHER IE8 FIXES */
/* UNTIL I CAN DETERMINE WHY toolboxend GENERATES AN EMPTY <li> IN THE MENU, I'M HIDING IT */ /* UNTIL I CAN DETERMINE WHY toolboxend GENERATES AN EMPTY <li> IN THE MENU, I'M HIDING IT */
#p-toolboxend { display:none;} #p-toolboxend { display:none;}
@ -955,7 +847,6 @@ span#nav-main {
.tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 { .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
font-size: 1.5em; font-size: 1.5em;
font-weight: 400; font-weight: 400;
line-height: 1.8em;
} }
section.right-small { section.right-small {
border-left: none; border-left: none;

View File

@ -1,6 +1,6 @@
{ {
"name": "Pivot", "name": "Pivot",
"version": "1.0.5", "version": "2.0.0",
"author": [ "author": [
"Tom Hutchison", "Tom Hutchison",
"..." "..."
@ -28,6 +28,7 @@
"assets/stylesheets/font-awesome.css", "assets/stylesheets/font-awesome.css",
"assets/stylesheets/foundation.css", "assets/stylesheets/foundation.css",
"assets/stylesheets/pivot.css", "assets/stylesheets/pivot.css",
"assets/stylesheets/fontawsome.css",
"assets/stylesheets/pivot-print.css" "assets/stylesheets/pivot-print.css"
] ]
}, },