foundation-sites
Advanced tools
Comparing version 6.0.5 to 6.0.6
@@ -139,2 +139,10 @@ !function(Foundation, $) { | ||
break; | ||
case 'password': | ||
if ($el.attr('required') && !$el.val()) { | ||
// requirement check does not pass | ||
return false; | ||
} else { | ||
return true; | ||
} | ||
break; | ||
case 'checkbox': | ||
@@ -226,2 +234,3 @@ if ($el.attr('required') && !$el.is(':checked')) { | ||
textInput = $form.find('input[type="text"]'), | ||
passwordInput = $form.find('input[type="password"]'), | ||
checkInput = $form.find('input[type="checkbox"]'), | ||
@@ -228,0 +237,0 @@ label, |
@@ -59,2 +59,5 @@ /** | ||
this.$tabs = this.$element.children('li'); | ||
if (this.$tabs.length == 0) { | ||
this.$tabs = this.$element.children('[data-accordion-item]'); | ||
} | ||
this.$tabs.each(function(idx, el){ | ||
@@ -162,9 +165,9 @@ | ||
Foundation.Move(_this.options.slideSpeed, $target, function(){ | ||
// Foundation.Move(_this.options.slideSpeed, $target, function(){ | ||
$target.slideDown(_this.options.slideSpeed); | ||
}); | ||
// }); | ||
if(!firstTime){ | ||
Foundation._reflow(this.$element.attr('data-accordion')); | ||
} | ||
// if(!firstTime){ | ||
// Foundation._reflow(this.$element.attr('data-accordion')); | ||
// } | ||
$('#' + $target.attr('aria-labelledby')).attr({ | ||
@@ -196,5 +199,5 @@ 'aria-expanded': true, | ||
Foundation.Move(this.options.slideSpeed, $target, function(){ | ||
// Foundation.Move(this.options.slideSpeed, $target, function(){ | ||
$target.slideUp(_this.options.slideSpeed); | ||
}); | ||
// }); | ||
@@ -201,0 +204,0 @@ $target.attr('aria-hidden', true) |
@@ -190,8 +190,10 @@ /** | ||
AccordionMenu.prototype.toggle = function($target){ | ||
if (!$target.is(':hidden')) { | ||
this.up($target); | ||
if(!$target.is(':animated')) { | ||
if (!$target.is(':hidden')) { | ||
this.up($target); | ||
} | ||
else { | ||
this.down($target); | ||
} | ||
} | ||
else { | ||
this.down($target); | ||
} | ||
}; | ||
@@ -198,0 +200,0 @@ /** |
!function($) { | ||
"use strict"; | ||
var FOUNDATION_VERSION = '6.0.5'; | ||
var FOUNDATION_VERSION = '6.0.6'; | ||
@@ -59,3 +58,6 @@ // Global Foundation object | ||
plugin.uuid = this.GetYoDigits(6, pluginName); | ||
plugin.$element.attr('data-' + pluginName, plugin.uuid) | ||
if(!plugin.$element.attr('data-' + pluginName)){ | ||
plugin.$element.attr('data-' + pluginName, plugin.uuid); | ||
} | ||
/** | ||
@@ -65,3 +67,3 @@ * Fires when the plugin has initialized. | ||
*/ | ||
.trigger('init.zf.' + pluginName); | ||
plugin.$element.trigger('init.zf.' + pluginName); | ||
@@ -146,2 +148,3 @@ this._activePlugins[plugin.uuid] = plugin; | ||
reflow: function(elem, plugins) { | ||
// If plugins is undefined, just grab everything | ||
@@ -164,3 +167,3 @@ if (typeof plugins === 'undefined') { | ||
// Localize the search to all elements inside elem, as well as elem itself, unless elem === document | ||
var $elem = $(elem).find('[data-'+name+']').addBack('*'); | ||
var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']'); | ||
@@ -172,3 +175,3 @@ // For each plugin found, initialize it | ||
// Don't double-dip on plugins | ||
if ($el.attr('zf-plugin')) { | ||
if ($el.data('zf-plugin')) { | ||
console.warn("Tried to initialize "+name+" on an element that already has a Foundation plugin."); | ||
@@ -184,3 +187,9 @@ return; | ||
} | ||
$el.data('zf-plugin', new plugin($(this), opts)); | ||
try{ | ||
$el.data('zf-plugin', new plugin($(this), opts)); | ||
}catch(er){ | ||
console.error(er); | ||
}finally{ | ||
return; | ||
} | ||
}); | ||
@@ -187,0 +196,0 @@ }); |
@@ -101,4 +101,4 @@ /** | ||
$menu.prepend(_this.options.backButton); | ||
_this._back($menu); | ||
} | ||
_this._back($menu); | ||
}); | ||
@@ -105,0 +105,0 @@ if(!this.$element.parent().hasClass('is-drilldown')){ |
@@ -44,2 +44,8 @@ /** | ||
/** | ||
* Don't close dropdown when hovering over dropdown pane | ||
* @option | ||
* @example true | ||
*/ | ||
hoverPane: false, | ||
/** | ||
* Number of pixels between the dropdown pane and the triggering element on open. | ||
@@ -203,3 +209,3 @@ * @option | ||
clearTimeout(_this.timeout); | ||
_this.timeOut = setTimeout(function(){ | ||
_this.timeout = setTimeout(function(){ | ||
_this.open(); | ||
@@ -210,3 +216,3 @@ _this.$anchor.data('hover', true); | ||
clearTimeout(_this.timeout); | ||
_this.timeOut = setTimeout(function(){ | ||
_this.timeout = setTimeout(function(){ | ||
_this.close(); | ||
@@ -216,6 +222,19 @@ _this.$anchor.data('hover', false); | ||
}); | ||
if(this.options.hoverPane){ | ||
this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown') | ||
.on('mouseenter.zf.dropdown', function(){ | ||
clearTimeout(_this.timeout); | ||
}).on('mouseleave.zf.dropdown', function(){ | ||
clearTimeout(_this.timeout); | ||
_this.timeout = setTimeout(function(){ | ||
_this.close(); | ||
_this.$anchor.data('hover', false); | ||
}, _this.options.hoverDelay); | ||
}); | ||
} | ||
} | ||
this.$anchor.add(this.$element).on('keydown.zf.dropdown', function(e) { | ||
var visibleFocusableElements = Foundation.Keyboard.findFocusable(_this.$element); | ||
var $target = $(this), | ||
visibleFocusableElements = Foundation.Keyboard.findFocusable(_this.$element); | ||
@@ -244,4 +263,7 @@ Foundation.Keyboard.handleKey(e, _this, { | ||
open: function() { | ||
_this.open(); | ||
_this.$element.attr('tabindex', -1).focus(); | ||
if ($target.is(_this.$anchor)) { | ||
_this.open(); | ||
_this.$element.attr('tabindex', -1).focus(); | ||
e.preventDefault(); | ||
} | ||
}, | ||
@@ -274,3 +296,3 @@ close: function() { | ||
.attr({'aria-hidden': false}); | ||
if(this.options.autoFocus){ | ||
@@ -277,0 +299,0 @@ var $focusable = Foundation.Keyboard.findFocusable(this.$element); |
@@ -96,3 +96,3 @@ /** | ||
this.points = []; | ||
this.winHeight = Math.round(Math.max(window.innerHeight, document.body.clientHeight)); | ||
this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight)); | ||
this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight)); | ||
@@ -99,0 +99,0 @@ |
@@ -143,3 +143,3 @@ /** | ||
} | ||
if(this.options.overlay){ | ||
if(this.options.overlay && !this.$overlay){ | ||
this.$overlay = this._makeOverlay(this.id); | ||
@@ -146,0 +146,0 @@ } |
@@ -225,3 +225,3 @@ /** | ||
elemDim = this.$element[0].getBoundingClientRect()[hOrW], | ||
pctOfBar = percent(location, this.options.end).toFixed(this.options.decimal), | ||
pctOfBar = percent(location, this.options.end).toFixed(2), | ||
pxToMove = (elemDim - halfOfHandle) * pctOfBar, | ||
@@ -245,3 +245,4 @@ movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal), | ||
}else{ | ||
location = (location < 100 ? location : 100) - (parseFloat(this.$handle[0].style.left) || this.options.end - location); | ||
var handleLeft = parseFloat(this.$handle[0].style.left); | ||
location = (location < 100 ? location : 100) - (!isNaN(handleLeft) ? handleLeft : this.options.end - location); | ||
css['min-' + hOrW] = location + '%'; | ||
@@ -248,0 +249,0 @@ } |
@@ -54,10 +54,4 @@ /** | ||
input = this.$element.data('toggler'); | ||
// Allow for a . at the beginning of the string | ||
if (input[0] === '.') { | ||
this.className = input.slice(1); | ||
} | ||
else { | ||
this.className = input; | ||
} | ||
this.className = input[0] === '.' ? input.slice(1) : input; | ||
} | ||
@@ -69,7 +63,4 @@ | ||
.attr('aria-controls', id); | ||
// If the target is hidden, add aria-hidden | ||
if (this.$element.is(':hidden')) { | ||
this.$element.attr('aria-expanded', 'false'); | ||
} | ||
this.$element.attr('aria-expanded', this.$element.is(':hidden') ? false : true); | ||
}; | ||
@@ -83,8 +74,3 @@ | ||
Toggler.prototype._events = function() { | ||
var _this = this; | ||
this.$element.on('toggle.zf.trigger', function() { | ||
_this.toggle(); | ||
return false; | ||
}); | ||
this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this)); | ||
}; | ||
@@ -99,15 +85,10 @@ | ||
Toggler.prototype.toggle = function() { | ||
if (!this.options.animate) { | ||
this._toggleClass(); | ||
} | ||
else { | ||
this._toggleAnimate(); | ||
} | ||
this[ this.options.animate ? '_toggleAnimate' : '_toggleClass'](); | ||
}; | ||
Toggler.prototype._toggleClass = function() { | ||
var _this = this; | ||
this.$element.toggleClass(this.className); | ||
if (this.$element.hasClass(this.className)) { | ||
var isOn = this.$element.hasClass(this.className); | ||
if (isOn) { | ||
/** | ||
@@ -127,3 +108,3 @@ * Fires if the target element has the class after a toggle. | ||
_this._updateARIA(); | ||
this._updateARIA(isOn); | ||
}; | ||
@@ -137,3 +118,3 @@ | ||
this.trigger('on.zf.toggler'); | ||
_this._updateARIA(); | ||
_this._updateARIA(true); | ||
}); | ||
@@ -144,3 +125,3 @@ } | ||
this.trigger('off.zf.toggler'); | ||
_this._updateARIA(); | ||
_this._updateARIA(false); | ||
}); | ||
@@ -150,9 +131,4 @@ } | ||
Toggler.prototype._updateARIA = function() { | ||
if (this.$element.is(':hidden')) { | ||
this.$element.attr('aria-expanded', 'false'); | ||
} | ||
else { | ||
this.$element.attr('aria-expanded', 'true'); | ||
} | ||
Toggler.prototype._updateARIA = function(isOn) { | ||
this.$element.attr('aria-expanded', isOn ? true : false); | ||
}; | ||
@@ -159,0 +135,0 @@ |
@@ -210,2 +210,2 @@ !function($, Foundation) { | ||
}(jQuery, Foundation) | ||
}(jQuery, Foundation); |
{ | ||
"name": "foundation-sites", | ||
"version": "6.0.5", | ||
"version": "6.0.6", | ||
"main": "dist/foundation.js", | ||
@@ -11,4 +11,3 @@ "description": "The most advanced responsive front-end framework in the world.", | ||
"test": "gulp test", | ||
"testbed": "cd testing && gulp", | ||
"deploy": "gulp deploy:docs" | ||
"deploy": "gulp deploy" | ||
}, | ||
@@ -23,2 +22,3 @@ "dependencies": { | ||
"browser-sync": "^2.8.2", | ||
"foundation-docs": "zurb/foundation-docs", | ||
"gitty": "^3.3.0", | ||
@@ -28,3 +28,2 @@ "gulp": "^3.8.10", | ||
"gulp-cache-bust": "^1.0.2", | ||
"gulp-cached": "^1.0.4", | ||
"gulp-concat": "^2.4.3", | ||
@@ -35,2 +34,3 @@ "gulp-filter": "^2.0.2", | ||
"gulp-minify-css": "^1.2.1", | ||
"gulp-newer": "^1.1.0", | ||
"gulp-plumber": "^1.0.1", | ||
@@ -44,14 +44,11 @@ "gulp-prompt": "^0.1.2", | ||
"gulp-scss-lint": "^0.2.2", | ||
"gulp-sourcemaps": "^1.6.0", | ||
"gulp-uglify": "^1.1.0", | ||
"handlebars": "^3.0.1", | ||
"highlight.js": "^8.5.0", | ||
"inquirer": "^0.11.0", | ||
"marked": "^0.3.3", | ||
"mocha": "^2.3.3", | ||
"motion-ui": "^1.1.0", | ||
"multiline": "^1.0.2", | ||
"octophant": "^1.0.0", | ||
"open": "0.0.5", | ||
"opener": "^1.4.1", | ||
"panini": "^1.0.0", | ||
"panini": "^1.1.1", | ||
"parker": "0.0.9", | ||
@@ -63,3 +60,2 @@ "pretty-print": "^1.0.0", | ||
"run-sequence": "^1.1.4", | ||
"string-template": "^0.2.1", | ||
"supercollider": "^1.1.0", | ||
@@ -66,0 +62,0 @@ "typeahead.js": "^0.11.1", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses eval() which is a dangerous function. This prevents the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 5 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
39
129
0
0
910762
16729