Comparing version 1.0.1 to 1.0.2
{ | ||
"name": "remodal", | ||
"version": "1.0.1", | ||
"homepage": "http://vodkabears.github.io/remodal/", | ||
@@ -46,7 +45,7 @@ "authors": [ | ||
"devDependencies": { | ||
"qunit": "~1.18.0", | ||
"qunit": "^1.18.0", | ||
"jquery": "jquery#^1.11.3", | ||
"jquery2": "jquery#^2.1.4", | ||
"zepto": "~1.1.6" | ||
"zepto": "^1.1.6" | ||
} | ||
} |
@@ -0,1 +1,6 @@ | ||
### 1.0.2 | ||
* Handle keydown event instead of keyup for "Esc" key. | ||
* Code improvements. | ||
* Update dependencies. | ||
### 1.0.1 | ||
@@ -2,0 +7,0 @@ * Do not use namespaces in data attributes (fix). |
/* | ||
* Remodal - v1.0.1 | ||
* Remodal - v1.0.2 | ||
* Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking. | ||
@@ -241,3 +241,3 @@ * http://vodkabears.github.io/remodal/ | ||
var $html = $('html'); | ||
var lockedClass = NAMESPACE + '-is-locked'; | ||
var lockedClass = namespacify('is-locked'); | ||
var paddingRight; | ||
@@ -263,3 +263,3 @@ var $body; | ||
var $html = $('html'); | ||
var lockedClass = NAMESPACE + '-is-locked'; | ||
var lockedClass = namespacify('is-locked'); | ||
var paddingRight; | ||
@@ -288,33 +288,24 @@ var $body; | ||
function setState(instance, state, isSilent, reason) { | ||
var newState = namespacify('is', state); | ||
var allStates = [namespacify('is', STATES.CLOSING), | ||
namespacify('is', STATES.OPENING), | ||
namespacify('is', STATES.CLOSED), | ||
namespacify('is', STATES.OPENED)].join(' '); | ||
instance.$bg | ||
.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED) | ||
.addClass(NAMESPACE + '-is-' + state); | ||
.removeClass(allStates) | ||
.addClass(newState); | ||
instance.$overlay | ||
.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED) | ||
.addClass(NAMESPACE + '-is-' + state); | ||
.removeClass(allStates) | ||
.addClass(newState); | ||
instance.$wrapper | ||
.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED) | ||
.addClass(NAMESPACE + '-is-' + state); | ||
.removeClass(allStates) | ||
.addClass(newState); | ||
instance.$modal | ||
.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED) | ||
.addClass(NAMESPACE + '-is-' + state); | ||
.removeClass(allStates) | ||
.addClass(newState); | ||
@@ -446,2 +437,18 @@ instance.state = state; | ||
/** | ||
* Generates a string separated by dashes and prefixed with NAMESPACE | ||
* @private | ||
* @param {...String} | ||
* @returns {String} | ||
*/ | ||
function namespacify() { | ||
var result = NAMESPACE; | ||
for (var i = 0; i < arguments.length; ++i) { | ||
result += '-' + arguments[i]; | ||
} | ||
return result; | ||
} | ||
/** | ||
* Handles the hashchange event | ||
@@ -497,20 +504,22 @@ * @private | ||
remodal.$overlay = $('.' + NAMESPACE + '-overlay'); | ||
remodal.$overlay = $('.' + namespacify('overlay')); | ||
if (!remodal.$overlay.length) { | ||
remodal.$overlay = $('<div>').addClass(NAMESPACE + '-overlay ' + NAMESPACE + '-is-' + STATES.CLOSED).hide(); | ||
remodal.$overlay = $('<div>').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide(); | ||
$body.append(remodal.$overlay); | ||
} | ||
remodal.$bg = $('.' + NAMESPACE + '-bg').addClass(NAMESPACE + '-is-' + STATES.CLOSED); | ||
remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED)); | ||
remodal.$modal = $modal; | ||
remodal.$modal.addClass( | ||
NAMESPACE + '-is-initialized' + ' ' + | ||
NAMESPACE + ' ' + remodal.settings.modifier + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED); | ||
NAMESPACE + ' ' + | ||
namespacify('is-initialized') + ' ' + | ||
remodal.settings.modifier + ' ' + | ||
namespacify('is', STATES.CLOSED)); | ||
remodal.$wrapper = $('<div>') | ||
.addClass( | ||
NAMESPACE + '-wrapper ' + remodal.settings.modifier + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED) | ||
namespacify('wrapper') + ' ' + | ||
remodal.settings.modifier + ' ' + | ||
namespacify('is', STATES.CLOSED)) | ||
.hide() | ||
@@ -553,3 +562,3 @@ .append(remodal.$modal); | ||
if (!$target.hasClass(NAMESPACE + '-wrapper')) { | ||
if (!$target.hasClass(namespacify('wrapper'))) { | ||
return; | ||
@@ -672,6 +681,6 @@ } | ||
this.$bg.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED); | ||
namespacify('is', STATES.CLOSING) + ' ' + | ||
namespacify('is', STATES.OPENING) + ' ' + | ||
namespacify('is', STATES.CLOSED) + ' ' + | ||
namespacify('is', STATES.OPENED)); | ||
} | ||
@@ -749,4 +758,4 @@ }; | ||
// Handles the keyup event | ||
$(document).on('keyup.' + NAMESPACE, function(e) { | ||
// Handles the keydown event | ||
$(document).on('keydown.' + NAMESPACE, function(e) { | ||
if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) { | ||
@@ -753,0 +762,0 @@ current.close(); |
/* | ||
* Remodal - v1.0.1 | ||
* Remodal - v1.0.2 | ||
* Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking. | ||
@@ -10,2 +10,2 @@ * http://vodkabears.github.io/remodal/ | ||
!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return b(a,c)}):"object"==typeof exports?b(a,require("jquery")):b(a,a.jQuery||a.Zepto)}(this,function(a,b){"use strict";function c(a){if(v&&"none"===a.css("animation-name")&&"none"===a.css("-webkit-animation-name")&&"none"===a.css("-moz-animation-name")&&"none"===a.css("-o-animation-name")&&"none"===a.css("-ms-animation-name"))return 0;var b,c,d,e,f=a.css("animation-duration")||a.css("-webkit-animation-duration")||a.css("-moz-animation-duration")||a.css("-o-animation-duration")||a.css("-ms-animation-duration")||"0s",g=a.css("animation-delay")||a.css("-webkit-animation-delay")||a.css("-moz-animation-delay")||a.css("-o-animation-delay")||a.css("-ms-animation-delay")||"0s",h=a.css("animation-iteration-count")||a.css("-webkit-animation-iteration-count")||a.css("-moz-animation-iteration-count")||a.css("-o-animation-iteration-count")||a.css("-ms-animation-iteration-count")||"1";for(f=f.split(", "),g=g.split(", "),h=h.split(", "),e=0,c=f.length,b=Number.NEGATIVE_INFINITY;c>e;e++)d=parseFloat(f[e])*parseInt(h[e],10)+parseFloat(g[e]),d>b&&(b=d);return d}function d(){if(b(document.body).height()<=b(window).height())return 0;var a,c,d=document.createElement("div"),e=document.createElement("div");return d.style.visibility="hidden",d.style.width="100px",document.body.appendChild(d),a=d.offsetWidth,d.style.overflow="scroll",e.style.width="100%",d.appendChild(e),c=e.offsetWidth,d.parentNode.removeChild(d),a-c}function e(){var a,c,e=b("html"),f=p+"-is-locked";e.hasClass(f)||(c=b(document.body),a=parseInt(c.css("padding-right"),10)+d(),c.css("padding-right",a+"px"),e.addClass(f))}function f(){var a,c,e=b("html"),f=p+"-is-locked";e.hasClass(f)&&(c=b(document.body),a=parseInt(c.css("padding-right"),10)-d(),c.css("padding-right",a+"px"),e.removeClass(f))}function g(a,b,c,d){a.$bg.removeClass(p+"-is-"+t.CLOSING+" "+p+"-is-"+t.OPENING+" "+p+"-is-"+t.CLOSED+" "+p+"-is-"+t.OPENED).addClass(p+"-is-"+b),a.$overlay.removeClass(p+"-is-"+t.CLOSING+" "+p+"-is-"+t.OPENING+" "+p+"-is-"+t.CLOSED+" "+p+"-is-"+t.OPENED).addClass(p+"-is-"+b),a.$wrapper.removeClass(p+"-is-"+t.CLOSING+" "+p+"-is-"+t.OPENING+" "+p+"-is-"+t.CLOSED+" "+p+"-is-"+t.OPENED).addClass(p+"-is-"+b),a.$modal.removeClass(p+"-is-"+t.CLOSING+" "+p+"-is-"+t.OPENING+" "+p+"-is-"+t.CLOSED+" "+p+"-is-"+t.OPENED).addClass(p+"-is-"+b),a.state=b,!c&&a.$modal.trigger({type:b,reason:d},[{reason:d}])}function h(a,d,e){var f=0,g=function(a){a.target===this&&f++},h=function(a){a.target===this&&0===--f&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(q+" "+r)}),d())};b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].on(q,g).on(r,h)}),a(),0===c(e.$bg)&&0===c(e.$overlay)&&0===c(e.$wrapper)&&0===c(e.$modal)&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(q+" "+r)}),d())}function i(a){a.state!==t.CLOSED&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(b,c){a[c].off(q+" "+r)}),a.$bg.removeClass(a.settings.modifier),a.$overlay.removeClass(a.settings.modifier).hide(),a.$wrapper.hide(),f(),g(a,t.CLOSED,!0))}function j(a){var b,c,d,e,f={};for(a=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,","),b=a.split(","),e=0,c=b.length;c>e;e++)b[e]=b[e].split(":"),d=b[e][1],("string"==typeof d||d instanceof String)&&(d="true"===d||("false"===d?!1:d)),("string"==typeof d||d instanceof String)&&(d=isNaN(d)?d:+d),f[b[e][0]]=d;return f}function k(){var a,c,d=location.hash.replace("#","");if(d){try{c=b("[data-"+o+"-id="+d.replace(new RegExp("/","g"),"\\/")+"]")}catch(e){}c&&c.length&&(a=b[o].lookup[c.data(o)],a&&a.settings.hashTracking&&a.open())}else m&&m.state===t.OPENED&&m.settings.hashTracking&&m.close()}function l(a,c){var d=b(document.body),e=this;e.settings=b.extend({},s,c),e.index=b[o].lookup.push(e)-1,e.state=t.CLOSED,e.$overlay=b("."+p+"-overlay"),e.$overlay.length||(e.$overlay=b("<div>").addClass(p+"-overlay "+p+"-is-"+t.CLOSED).hide(),d.append(e.$overlay)),e.$bg=b("."+p+"-bg").addClass(p+"-is-"+t.CLOSED),e.$modal=a,e.$modal.addClass(p+"-is-initialized "+p+" "+e.settings.modifier+" "+p+"-is-"+t.CLOSED),e.$wrapper=b("<div>").addClass(p+"-wrapper "+e.settings.modifier+" "+p+"-is-"+t.CLOSED).hide().append(e.$modal),d.append(e.$wrapper),e.$wrapper.on("click."+p,"[data-"+o+'-action="close"]',function(a){a.preventDefault(),e.close()}),e.$wrapper.on("click."+p,"[data-"+o+'-action="cancel"]',function(a){a.preventDefault(),e.$modal.trigger(u.CANCELLATION),e.settings.closeOnCancel&&e.close(u.CANCELLATION)}),e.$wrapper.on("click."+p,"[data-"+o+'-action="confirm"]',function(a){a.preventDefault(),e.$modal.trigger(u.CONFIRMATION),e.settings.closeOnConfirm&&e.close(u.CONFIRMATION)}),e.$wrapper.on("click."+p,function(a){var c=b(a.target);c.hasClass(p+"-wrapper")&&e.settings.closeOnOutsideClick&&e.close()})}var m,n,o="remodal",p=a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.NAMESPACE||o,q=b.map(["animationstart","webkitAnimationStart","MSAnimationStart","oAnimationStart"],function(a){return a+"."+p}).join(" "),r=b.map(["animationend","webkitAnimationEnd","MSAnimationEnd","oAnimationEnd"],function(a){return a+"."+p}).join(" "),s=b.extend({hashTracking:!0,closeOnConfirm:!0,closeOnCancel:!0,closeOnEscape:!0,closeOnOutsideClick:!0,modifier:""},a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.DEFAULTS),t={CLOSING:"closing",CLOSED:"closed",OPENING:"opening",OPENED:"opened"},u={CONFIRMATION:"confirmation",CANCELLATION:"cancellation"},v=function(){var a=document.createElement("div").style;return void 0!==a.animationName||void 0!==a.WebkitAnimationName||void 0!==a.MozAnimationName||void 0!==a.msAnimationName||void 0!==a.OAnimationName}();l.prototype.open=function(){var a,c=this;c.state!==t.OPENING&&c.state!==t.CLOSING&&(a=c.$modal.attr("data-"+o+"-id"),a&&c.settings.hashTracking&&(n=b(window).scrollTop(),location.hash=a),m&&m!==c&&i(m),m=c,e(),c.$bg.addClass(c.settings.modifier),c.$overlay.addClass(c.settings.modifier).show(),c.$wrapper.show().scrollTop(0),h(function(){g(c,t.OPENING)},function(){g(c,t.OPENED)},c))},l.prototype.close=function(a){var c=this;c.state!==t.OPENING&&c.state!==t.CLOSING&&(c.settings.hashTracking&&c.$modal.attr("data-"+o+"-id")===location.hash.substr(1)&&(location.hash="",b(window).scrollTop(n)),h(function(){g(c,t.CLOSING,!1,a)},function(){c.$bg.removeClass(c.settings.modifier),c.$overlay.removeClass(c.settings.modifier).hide(),c.$wrapper.hide(),f(),g(c,t.CLOSED,!1,a)},c))},l.prototype.getState=function(){return this.state},l.prototype.destroy=function(){var a,c=b[o].lookup;i(this),this.$wrapper.remove(),delete c[this.index],a=b.grep(c,function(a){return!!a}).length,0===a&&(this.$overlay.remove(),this.$bg.removeClass(p+"-is-"+t.CLOSING+" "+p+"-is-"+t.OPENING+" "+p+"-is-"+t.CLOSED+" "+p+"-is-"+t.OPENED))},b[o]={lookup:[]},b.fn[o]=function(a){var c,d;return this.each(function(e,f){d=b(f),null==d.data(o)?(c=new l(d,a),d.data(o,c.index),c.settings.hashTracking&&d.attr("data-"+o+"-id")===location.hash.substr(1)&&c.open()):c=b[o].lookup[d.data(o)]}),c},b(document).ready(function(){b(document).on("click","[data-"+o+"-target]",function(a){a.preventDefault();var c=a.currentTarget,d=c.getAttribute("data-"+o+"-target"),e=b("[data-"+o+"-id="+d+"]");b[o].lookup[e.data(o)].open()}),b(document).find("."+p).each(function(a,c){var d=b(c),e=d.data(o+"-options");e?("string"==typeof e||e instanceof String)&&(e=j(e)):e={},d[o](e)}),b(document).on("keyup."+p,function(a){m&&m.settings.closeOnEscape&&m.state===t.OPENED&&27===a.keyCode&&m.close()}),b(window).on("hashchange."+p,k)})}); | ||
!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return b(a,c)}):"object"==typeof exports?b(a,require("jquery")):b(a,a.jQuery||a.Zepto)}(this,function(a,b){"use strict";function c(a){if(w&&"none"===a.css("animation-name")&&"none"===a.css("-webkit-animation-name")&&"none"===a.css("-moz-animation-name")&&"none"===a.css("-o-animation-name")&&"none"===a.css("-ms-animation-name"))return 0;var b,c,d,e,f=a.css("animation-duration")||a.css("-webkit-animation-duration")||a.css("-moz-animation-duration")||a.css("-o-animation-duration")||a.css("-ms-animation-duration")||"0s",g=a.css("animation-delay")||a.css("-webkit-animation-delay")||a.css("-moz-animation-delay")||a.css("-o-animation-delay")||a.css("-ms-animation-delay")||"0s",h=a.css("animation-iteration-count")||a.css("-webkit-animation-iteration-count")||a.css("-moz-animation-iteration-count")||a.css("-o-animation-iteration-count")||a.css("-ms-animation-iteration-count")||"1";for(f=f.split(", "),g=g.split(", "),h=h.split(", "),e=0,c=f.length,b=Number.NEGATIVE_INFINITY;c>e;e++)d=parseFloat(f[e])*parseInt(h[e],10)+parseFloat(g[e]),d>b&&(b=d);return d}function d(){if(b(document.body).height()<=b(window).height())return 0;var a,c,d=document.createElement("div"),e=document.createElement("div");return d.style.visibility="hidden",d.style.width="100px",document.body.appendChild(d),a=d.offsetWidth,d.style.overflow="scroll",e.style.width="100%",d.appendChild(e),c=e.offsetWidth,d.parentNode.removeChild(d),a-c}function e(){var a,c,e=b("html"),f=k("is-locked");e.hasClass(f)||(c=b(document.body),a=parseInt(c.css("padding-right"),10)+d(),c.css("padding-right",a+"px"),e.addClass(f))}function f(){var a,c,e=b("html"),f=k("is-locked");e.hasClass(f)&&(c=b(document.body),a=parseInt(c.css("padding-right"),10)-d(),c.css("padding-right",a+"px"),e.removeClass(f))}function g(a,b,c,d){var e=k("is",b),f=[k("is",u.CLOSING),k("is",u.OPENING),k("is",u.CLOSED),k("is",u.OPENED)].join(" ");a.$bg.removeClass(f).addClass(e),a.$overlay.removeClass(f).addClass(e),a.$wrapper.removeClass(f).addClass(e),a.$modal.removeClass(f).addClass(e),a.state=b,!c&&a.$modal.trigger({type:b,reason:d},[{reason:d}])}function h(a,d,e){var f=0,g=function(a){a.target===this&&f++},h=function(a){a.target===this&&0===--f&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(r+" "+s)}),d())};b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].on(r,g).on(s,h)}),a(),0===c(e.$bg)&&0===c(e.$overlay)&&0===c(e.$wrapper)&&0===c(e.$modal)&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(r+" "+s)}),d())}function i(a){a.state!==u.CLOSED&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(b,c){a[c].off(r+" "+s)}),a.$bg.removeClass(a.settings.modifier),a.$overlay.removeClass(a.settings.modifier).hide(),a.$wrapper.hide(),f(),g(a,u.CLOSED,!0))}function j(a){var b,c,d,e,f={};for(a=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,","),b=a.split(","),e=0,c=b.length;c>e;e++)b[e]=b[e].split(":"),d=b[e][1],("string"==typeof d||d instanceof String)&&(d="true"===d||("false"===d?!1:d)),("string"==typeof d||d instanceof String)&&(d=isNaN(d)?d:+d),f[b[e][0]]=d;return f}function k(){for(var a=q,b=0;b<arguments.length;++b)a+="-"+arguments[b];return a}function l(){var a,c,d=location.hash.replace("#","");if(d){try{c=b("[data-"+p+"-id="+d.replace(new RegExp("/","g"),"\\/")+"]")}catch(e){}c&&c.length&&(a=b[p].lookup[c.data(p)],a&&a.settings.hashTracking&&a.open())}else n&&n.state===u.OPENED&&n.settings.hashTracking&&n.close()}function m(a,c){var d=b(document.body),e=this;e.settings=b.extend({},t,c),e.index=b[p].lookup.push(e)-1,e.state=u.CLOSED,e.$overlay=b("."+k("overlay")),e.$overlay.length||(e.$overlay=b("<div>").addClass(k("overlay")+" "+k("is",u.CLOSED)).hide(),d.append(e.$overlay)),e.$bg=b("."+k("bg")).addClass(k("is",u.CLOSED)),e.$modal=a,e.$modal.addClass(q+" "+k("is-initialized")+" "+e.settings.modifier+" "+k("is",u.CLOSED)),e.$wrapper=b("<div>").addClass(k("wrapper")+" "+e.settings.modifier+" "+k("is",u.CLOSED)).hide().append(e.$modal),d.append(e.$wrapper),e.$wrapper.on("click."+q,"[data-"+p+'-action="close"]',function(a){a.preventDefault(),e.close()}),e.$wrapper.on("click."+q,"[data-"+p+'-action="cancel"]',function(a){a.preventDefault(),e.$modal.trigger(v.CANCELLATION),e.settings.closeOnCancel&&e.close(v.CANCELLATION)}),e.$wrapper.on("click."+q,"[data-"+p+'-action="confirm"]',function(a){a.preventDefault(),e.$modal.trigger(v.CONFIRMATION),e.settings.closeOnConfirm&&e.close(v.CONFIRMATION)}),e.$wrapper.on("click."+q,function(a){var c=b(a.target);c.hasClass(k("wrapper"))&&e.settings.closeOnOutsideClick&&e.close()})}var n,o,p="remodal",q=a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.NAMESPACE||p,r=b.map(["animationstart","webkitAnimationStart","MSAnimationStart","oAnimationStart"],function(a){return a+"."+q}).join(" "),s=b.map(["animationend","webkitAnimationEnd","MSAnimationEnd","oAnimationEnd"],function(a){return a+"."+q}).join(" "),t=b.extend({hashTracking:!0,closeOnConfirm:!0,closeOnCancel:!0,closeOnEscape:!0,closeOnOutsideClick:!0,modifier:""},a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.DEFAULTS),u={CLOSING:"closing",CLOSED:"closed",OPENING:"opening",OPENED:"opened"},v={CONFIRMATION:"confirmation",CANCELLATION:"cancellation"},w=function(){var a=document.createElement("div").style;return void 0!==a.animationName||void 0!==a.WebkitAnimationName||void 0!==a.MozAnimationName||void 0!==a.msAnimationName||void 0!==a.OAnimationName}();m.prototype.open=function(){var a,c=this;c.state!==u.OPENING&&c.state!==u.CLOSING&&(a=c.$modal.attr("data-"+p+"-id"),a&&c.settings.hashTracking&&(o=b(window).scrollTop(),location.hash=a),n&&n!==c&&i(n),n=c,e(),c.$bg.addClass(c.settings.modifier),c.$overlay.addClass(c.settings.modifier).show(),c.$wrapper.show().scrollTop(0),h(function(){g(c,u.OPENING)},function(){g(c,u.OPENED)},c))},m.prototype.close=function(a){var c=this;c.state!==u.OPENING&&c.state!==u.CLOSING&&(c.settings.hashTracking&&c.$modal.attr("data-"+p+"-id")===location.hash.substr(1)&&(location.hash="",b(window).scrollTop(o)),h(function(){g(c,u.CLOSING,!1,a)},function(){c.$bg.removeClass(c.settings.modifier),c.$overlay.removeClass(c.settings.modifier).hide(),c.$wrapper.hide(),f(),g(c,u.CLOSED,!1,a)},c))},m.prototype.getState=function(){return this.state},m.prototype.destroy=function(){var a,c=b[p].lookup;i(this),this.$wrapper.remove(),delete c[this.index],a=b.grep(c,function(a){return!!a}).length,0===a&&(this.$overlay.remove(),this.$bg.removeClass(k("is",u.CLOSING)+" "+k("is",u.OPENING)+" "+k("is",u.CLOSED)+" "+k("is",u.OPENED)))},b[p]={lookup:[]},b.fn[p]=function(a){var c,d;return this.each(function(e,f){d=b(f),null==d.data(p)?(c=new m(d,a),d.data(p,c.index),c.settings.hashTracking&&d.attr("data-"+p+"-id")===location.hash.substr(1)&&c.open()):c=b[p].lookup[d.data(p)]}),c},b(document).ready(function(){b(document).on("click","[data-"+p+"-target]",function(a){a.preventDefault();var c=a.currentTarget,d=c.getAttribute("data-"+p+"-target"),e=b("[data-"+p+"-id="+d+"]");b[p].lookup[e.data(p)].open()}),b(document).find("."+q).each(function(a,c){var d=b(c),e=d.data(p+"-options");e?("string"==typeof e||e instanceof String)&&(e=j(e)):e={},d[p](e)}),b(document).on("keydown."+q,function(a){n&&n.settings.closeOnEscape&&n.state===u.OPENED&&27===a.keyCode&&n.close()}),b(window).on("hashchange."+q,l)})}); |
{ | ||
"name": "remodal", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking.", | ||
@@ -43,4 +43,4 @@ "keywords": [ | ||
"grunt": "^0.4.5", | ||
"grunt-autoprefixer": "^3.0.0", | ||
"grunt-browser-sync": "^2.1.2", | ||
"grunt-autoprefixer": "^3.0.3", | ||
"grunt-browser-sync": "^2.1.3", | ||
"grunt-cli": "^0.1.13", | ||
@@ -47,0 +47,0 @@ "grunt-contrib-concat": "^0.5.1", |
@@ -232,3 +232,3 @@ !(function(root, factory) { | ||
var $html = $('html'); | ||
var lockedClass = NAMESPACE + '-is-locked'; | ||
var lockedClass = namespacify('is-locked'); | ||
var paddingRight; | ||
@@ -254,3 +254,3 @@ var $body; | ||
var $html = $('html'); | ||
var lockedClass = NAMESPACE + '-is-locked'; | ||
var lockedClass = namespacify('is-locked'); | ||
var paddingRight; | ||
@@ -279,33 +279,24 @@ var $body; | ||
function setState(instance, state, isSilent, reason) { | ||
var newState = namespacify('is', state); | ||
var allStates = [namespacify('is', STATES.CLOSING), | ||
namespacify('is', STATES.OPENING), | ||
namespacify('is', STATES.CLOSED), | ||
namespacify('is', STATES.OPENED)].join(' '); | ||
instance.$bg | ||
.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED) | ||
.addClass(NAMESPACE + '-is-' + state); | ||
.removeClass(allStates) | ||
.addClass(newState); | ||
instance.$overlay | ||
.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED) | ||
.addClass(NAMESPACE + '-is-' + state); | ||
.removeClass(allStates) | ||
.addClass(newState); | ||
instance.$wrapper | ||
.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED) | ||
.addClass(NAMESPACE + '-is-' + state); | ||
.removeClass(allStates) | ||
.addClass(newState); | ||
instance.$modal | ||
.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED) | ||
.addClass(NAMESPACE + '-is-' + state); | ||
.removeClass(allStates) | ||
.addClass(newState); | ||
@@ -437,2 +428,18 @@ instance.state = state; | ||
/** | ||
* Generates a string separated by dashes and prefixed with NAMESPACE | ||
* @private | ||
* @param {...String} | ||
* @returns {String} | ||
*/ | ||
function namespacify() { | ||
var result = NAMESPACE; | ||
for (var i = 0; i < arguments.length; ++i) { | ||
result += '-' + arguments[i]; | ||
} | ||
return result; | ||
} | ||
/** | ||
* Handles the hashchange event | ||
@@ -488,20 +495,22 @@ * @private | ||
remodal.$overlay = $('.' + NAMESPACE + '-overlay'); | ||
remodal.$overlay = $('.' + namespacify('overlay')); | ||
if (!remodal.$overlay.length) { | ||
remodal.$overlay = $('<div>').addClass(NAMESPACE + '-overlay ' + NAMESPACE + '-is-' + STATES.CLOSED).hide(); | ||
remodal.$overlay = $('<div>').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide(); | ||
$body.append(remodal.$overlay); | ||
} | ||
remodal.$bg = $('.' + NAMESPACE + '-bg').addClass(NAMESPACE + '-is-' + STATES.CLOSED); | ||
remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED)); | ||
remodal.$modal = $modal; | ||
remodal.$modal.addClass( | ||
NAMESPACE + '-is-initialized' + ' ' + | ||
NAMESPACE + ' ' + remodal.settings.modifier + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED); | ||
NAMESPACE + ' ' + | ||
namespacify('is-initialized') + ' ' + | ||
remodal.settings.modifier + ' ' + | ||
namespacify('is', STATES.CLOSED)); | ||
remodal.$wrapper = $('<div>') | ||
.addClass( | ||
NAMESPACE + '-wrapper ' + remodal.settings.modifier + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED) | ||
namespacify('wrapper') + ' ' + | ||
remodal.settings.modifier + ' ' + | ||
namespacify('is', STATES.CLOSED)) | ||
.hide() | ||
@@ -544,3 +553,3 @@ .append(remodal.$modal); | ||
if (!$target.hasClass(NAMESPACE + '-wrapper')) { | ||
if (!$target.hasClass(namespacify('wrapper'))) { | ||
return; | ||
@@ -663,6 +672,6 @@ } | ||
this.$bg.removeClass( | ||
NAMESPACE + '-is-' + STATES.CLOSING + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENING + ' ' + | ||
NAMESPACE + '-is-' + STATES.CLOSED + ' ' + | ||
NAMESPACE + '-is-' + STATES.OPENED); | ||
namespacify('is', STATES.CLOSING) + ' ' + | ||
namespacify('is', STATES.OPENING) + ' ' + | ||
namespacify('is', STATES.CLOSED) + ' ' + | ||
namespacify('is', STATES.OPENED)); | ||
} | ||
@@ -740,4 +749,4 @@ }; | ||
// Handles the keyup event | ||
$(document).on('keyup.' + NAMESPACE, function(e) { | ||
// Handles the keydown event | ||
$(document).on('keydown.' + NAMESPACE, function(e) { | ||
if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) { | ||
@@ -744,0 +753,0 @@ current.close(); |
@@ -191,3 +191,3 @@ !(function($, location, document) { | ||
$document.one('opened', '[data-remodal-id=modal]', function() { | ||
$document.trigger($.Event('keyup', { keyCode: 27 })); | ||
$document.trigger($.Event('keydown', { keyCode: 27 })); | ||
}); | ||
@@ -360,3 +360,3 @@ | ||
$document.one('opened', '[data-remodal-id=modal2]', function() { | ||
$document.trigger($.Event('keyup', { keyCode: 27 })); | ||
$document.trigger($.Event('keydown', { keyCode: 27 })); | ||
@@ -363,0 +363,0 @@ setTimeout(function() { |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
45997
4868921