shower-core
Advanced tools
Comparing version 2.0.8 to 2.1.0
{ | ||
"name": "shower-core", | ||
"description": "Core for Shower HTML presentation engine", | ||
"version": "2.0.8", | ||
"version": "2.1.0", | ||
"author": { | ||
@@ -45,18 +45,16 @@ "name": "Vadim Makeev", | ||
"chai": "^3.5.0", | ||
"chai-dom": "^1.4.3", | ||
"git-hooks": "^1.1.1", | ||
"grunt": "^1.0.1", | ||
"grunt-bump": "^0.8.0", | ||
"grunt-contrib-concat": "^1.0.1", | ||
"grunt-contrib-connect": "^1.0.2", | ||
"grunt-contrib-uglify": "^2.0.0", | ||
"grunt-contrib-watch": "^1.0.0", | ||
"grunt-jscs": "^3.0.1", | ||
"grunt-mocha": "^1.0.2", | ||
"grunt-webdriver": "^2.0.3", | ||
"gulp": "^3.9.1", | ||
"gulp-concat": "^2.6.1", | ||
"gulp-insert": "^0.5.0", | ||
"gulp-jscs": "^4.0.0", | ||
"gulp-mocha-phantomjs": "^0.12.0", | ||
"gulp-rename": "^1.2.2", | ||
"gulp-uglify": "^2.0.0", | ||
"gulp-webdriver": "^2.0.3", | ||
"jscs": "^3.0.7", | ||
"jscs-preset-loris": "^1.2.0", | ||
"jshint": "^2.9.3", | ||
"load-grunt-tasks": "^3.5.2", | ||
"mocha": "^3.0.2", | ||
"pinkie-promise": "^2.0.1", | ||
"selenium-standalone": "^5.6.3", | ||
@@ -75,8 +73,8 @@ "shower-next": "0.0.6", | ||
"prebuild": "selenium-standalone install", | ||
"build": "grunt default", | ||
"prepublish": "npm run build", | ||
"validate": "jshint . && jscs .", | ||
"test": "grunt default && ls shower.min.js", | ||
"build": "gulp build", | ||
"validate": "jshint . && gulp lint", | ||
"test": "gulp test", | ||
"report": "allure report generate -o allure-report allure-results && allure report open -o allure-report" | ||
} | ||
} |
@@ -15,3 +15,2 @@ # Core for Shower [![Build Status](https://travis-ci.org/shower/core.svg?branch=master)](https://travis-ci.org/shower/core) | ||
The same packages available in [bower](http://bower.io/). | ||
@@ -18,0 +17,0 @@ ## Development |
/** | ||
* Core for Shower HTML presentation engine | ||
* shower-core v2.0.8, https://github.com/shower/core | ||
* @copyright 2010–2016 Vadim Makeev, http://pepelsbey.net/ | ||
* shower-core v2.1.0, https://github.com/shower/core | ||
* @copyright 2010-2017 Vadim Makeev, http://pepelsbey.net/ | ||
* @license MIT | ||
*/ | ||
!function(a){var b,c={NOT_RESOLVED:"NOT_RESOLVED",IN_RESOLVING:"IN_RESOLVING",RESOLVED:"RESOLVED"},d=function(){var l={trackCircularDependencies:!0,allowMultipleDeclarations:!0},m={},n=!1,o=[],p=function(a,d,e){e||(e=d,d=[]);var f=m[a];f||(f=m[a]={name:a,decl:b}),f.decl={name:a,prev:f.decl,fn:e,state:c.NOT_RESOLVED,deps:d,dependents:[],exports:b}},q=function(b,c,d){"string"==typeof b&&(b=[b]),n||(n=!0,k(v)),o.push({deps:b,cb:function(b,f){f?(d||e)(f):c.apply(a,b)}})},r=function(a){var b=m[a];return b?c[b.decl.state]:"NOT_DEFINED"},s=function(a){return!!m[a]},t=function(a){for(var b in a)a.hasOwnProperty(b)&&(l[b]=a[b])},u=function(){var a,b={};for(var c in m)m.hasOwnProperty(c)&&(a=m[c],(b[a.decl.state]||(b[a.decl.state]=[])).push(c));return b},v=function(){n=!1,w()},w=function(){var a,b=o,c=0;for(o=[];a=b[c++];)x(null,a.deps,[],a.cb)},x=function(a,b,c,d){var e=b.length;e||d([]);for(var g,h,i=[],j=function(a,b){if(b)return void d(null,b);if(!--e){for(var c,f=[],g=0;c=i[g++];)f.push(c.exports);d(f)}},k=0,l=e;k<l;){if(g=b[k++],"string"==typeof g){if(!m[g])return void d(null,f(g,a));h=m[g].decl}else h=g;i.push(h),y(h,c,j)}},y=function(b,d,e){if(b.state===c.RESOLVED)return void e(b.exports);if(b.state===c.IN_RESOLVING)return void(l.trackCircularDependencies&&j(b,d)?e(null,g(b,d)):b.dependents.push(e));if(b.dependents.push(e),b.prev&&!l.allowMultipleDeclarations)return void A(b,i(b));l.trackCircularDependencies&&(d=d.slice()).push(b);var f=!1,k=b.prev?b.deps.concat([b.prev]):b.deps;b.state=c.IN_RESOLVING,x(b,k,d,function(c,d){return d?void A(b,d):(c.unshift(function(a,c){return f?void e(null,h(b)):(f=!0,void(c?A(b,c):z(b,a)))}),void b.fn.apply({name:b.name,deps:b.deps,global:a},c))})},z=function(a,d){a.exports=d,a.state=c.RESOLVED;for(var e,f=0;e=a.dependents[f++];)e(d);a.dependents=b},A=function(a,b){a.state=c.NOT_RESOLVED;for(var d,e=0;d=a.dependents[e++];)d(null,b);a.dependents=[]};return{create:d,define:p,require:q,getState:r,isDefined:s,setOptions:t,getStat:u}},e=function(a){k(function(){throw a})},f=function(a,b){return Error(b?'Module "'+b.name+'": can\'t resolve dependence "'+a+'"':'Required module "'+a+"\" can't be resolved")},g=function(a,b){for(var c,d=[],e=0;c=b[e++];)d.push(c.name);return d.push(a.name),Error('Circular dependence has been detected: "'+d.join(" -> ")+'"')},h=function(a){return Error('Declaration of module "'+a.name+'" has already been provided')},i=function(a){return Error('Multiple declarations of module "'+a.name+'" have been detected')},j=function(a,b){for(var c,d=0;c=b[d++];)if(a===c)return!0;return!1},k=function(){var b=[],c=function(a){return 1===b.push(a)},d=function(){var a=b,c=0,d=b.length;for(b=[];c<d;)a[c++]()};if("object"==typeof process&&process.nextTick)return function(a){c(a)&&process.nextTick(d)};if(a.setImmediate)return function(b){c(b)&&a.setImmediate(d)};if(a.postMessage&&!a.opera){var e=!0;if(a.attachEvent){var f=function(){e=!1};a.attachEvent("onmessage",f),a.postMessage("__checkAsync","*"),a.detachEvent("onmessage",f)}if(e){var g="__modules"+ +new Date,h=function(a){a.data===g&&(a.stopPropagation&&a.stopPropagation(),d())};return a.addEventListener?a.addEventListener("message",h,!0):a.attachEvent("onmessage",h),function(b){c(b)&&a.postMessage(g,"*")}}}var i=a.document;if("onreadystatechange"in i.createElement("script")){var j=i.getElementsByTagName("head")[0],k=function(){var a=i.createElement("script");a.onreadystatechange=function(){a.parentNode.removeChild(a),a=a.onreadystatechange=null,d()},j.appendChild(a)};return function(a){c(a)&&k()}}return function(a){c(a)&&setTimeout(d,0)}}();"object"==typeof exports?module.exports=d():a.modules=d()}("undefined"!=typeof window?window:global),function(a){function b(a,b){return a.dataset?a.dataset[b]:a.getAttribute("data-"+b)}var c=["debug-mode","slides-selector","hotkeys"];a.shower={modules:modules.create(),options:a.showerOptions||{}},document.addEventListener("DOMContentLoaded",function(){a.shower.modules.require("shower.defaultOptions",function(d){var e=a.hasOwnProperty("showerOptions"),f=a.shower.options,g=f.shower_selector||d.container_selector,h=document.querySelector(g),i=b.bind(this,h),j="undefined"==typeof f.auto_init||f.auto_init;if(!h)throw new Error("Shower element with selector "+g+" not found.");("false"!==i("auto-init")||e&&j)&&(e||c.forEach(function(a){var b=i(a);null!==b&&"undefined"!=typeof b&&(f[a.replace(/-/g,"_")]=b)}),a.shower.modules.require(["shower"],function(a){a.init({container:h,options:f})}))})},!1)}(window),shower.modules.define("shower",["shower.global"],function(a,b){a(b)}),shower.modules.define("emitter.Event",["util.extend"],function(a,b){function c(a){this._data=a,this._preventDefault=!1,this._stopPropagation=!1}b(c.prototype,{get:function(a){return this._data[a]},preventDefault:function(){return this._preventDefault=!0,this._preventDefault},defaultPrevented:function(){return this._preventDefault},stopPropagation:function(){return this._stopPropagation=!0,this._stopPropagation},isPropagationStopped:function(){return this._stopPropagation}}),a(c)}),shower.modules.define("emitter.EventGroup",["util.extend"],function(a,b){function c(a){this.events=a,this._listeners=[]}b(c.prototype,{on:function(a,b,c){if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)this._listeners.push(a[d],b,c);else this._listeners.push(a,b,c);return this.events.on(a,b,c),this},off:function(a,b,c){if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)this._removeListener(a[d],b,c);else this._removeListener(a,b,c);return this},offAll:function(){for(var a=0,b=this._listeners.length;a<b;a+=3)this.events.off(this._listeners[a],this._listeners[a+1],this._listeners[a+2]);return this._listeners.length=0,this},_removeListener:function(a,b,c){for(var d=this._listeners.indexOf(a,0);d!=-1;)this._listeners[d+1]==b&&this._listeners[d+2]==c&&(this._listeners.splice(d,3),this.events.off(a,b,c)),d=this._listeners.indexOf(a,d)}}),a(c)}),shower.modules.define("Emitter",["emitter.Event","emitter.EventGroup","util.extend"],function(a,b,c,d){function e(a){a=a||{},this._context=a.context,this._parent=a.parent,this._listeners={}}function f(a,b){return a.priority-b.priority}d(e.prototype,{on:function(a,b,c,d){if("undefined"==typeof b)throw new Error("Callback is not defined.");if(d=d||0,"string"==typeof a)this._addListener(a,b,c,d);else for(var e=0,f=a.length;e<f;e++)this._addListener(a[e],b,c,d);return this},off:function(a,b,c,d){if(d=d||0,"string"==typeof a)this._removeListener(a,b,c,d);else for(var e=0,f=a.length;e<f;e++)this._removeListener(a[e],b,c,d);return this},once:function(a,b,c,d){var e=function(f){this.off(a,e,this,d),c?b.call(c,f):b(f)};return this.on(a,e,this,d),this},emit:function(a,b){var c=b,d=this._listeners;c&&"function"==typeof c.get||(c=this.createEventObject(a,b,this._context)),c.isPropagationStopped()||(d.hasOwnProperty(a)&&this._callListeners(d[a],c),this._parent&&!c.isPropagationStopped()&&this._parent.emit(a,c))},createEventObject:function(a,c,e){var f={target:e,type:a};return new b(c?d(f,c):f)},setParent:function(a){this._parent!=a&&(this._parent=a)},getParent:function(){return this._parent},group:function(){return new c(this)},_addListener:function(a,b,c,d){var e={callback:b,context:c,priority:d};this._listeners[a]?this._listeners[a].push(e):this._listeners[a]=[e]},_removeListener:function(a,b,c,d){var e,f=this._listeners[a];if(f){for(var g=-1,h=0,i=f.length;h<i;h++)e=f[h],e.callback==b&&e.context==c&&e.priority==d&&(g=h);g!=-1&&(1==f.length?this._clearType(a):f.splice(g,1))}},_clearType:function(a){this._listeners.hasOwnProperty(a)&&delete this._listeners[a]},_callListeners:function(a,b){var c=a.length-1;for(a.sort(f);c>=0&&!b.defaultPrevented();){var d=a[c];d&&(d.context?d.callback.call(d.context,b):d.callback(b)),c--}}}),a(e)}),shower.modules.define("Plugins",["Emitter","util.extend"],function(a,b,c){function d(a){this.events=new b({context:this}),this._showerGlobal=a,this._showerInstances=a.getInited(),this._plugins={},this._instances=[],a.events.on("init",this._onShowerInit,this)}c(d.prototype,{destroy:function(){this._showerGlobal.events.off("init",this._onShowerInit,this),this._plugins=null},add:function(a,b){if(this._plugins.hasOwnProperty(a))throw new Error("Plugin "+a+" already exist.");return this._requireAndAdd({name:a,options:b}),this},remove:function(a){if(!this._plugins.hasOwnProperty(a))throw new Error("Plugin "+a+" not found.");return delete this._plugins[a],this.events.emit("remove",{name:a}),this},get:function(a,b){var c,d=this._plugins[a];if(d&&b)for(var e=0,f=this._instances.length;e<f;e++){var g=this._instances[e];g.plugin.name===a&&g.shower===b&&(c=g.instance)}return c},_requireAndAdd:function(a){shower.modules.require(a.name,function(b){a.class=b,this._plugins[a.name]=a,this._instancePlugin(a)}.bind(this))},_instancePlugin:function(a){this._showerInstances.forEach(function(b){this._instance(a,b)},this),this.events.emit("add",{name:a.name})},_instanceFor:function(a){for(var b in this._plugins)this._plugins.hasOwnProperty(b)&&this._instance(this._plugins[b],a)},_instance:function(a,b){var c=a.options||b.options.get("plugin_"+a.name);this._instances.push({shower:b,plugin:a,instance:new a.class(b,c)})},_onShowerInit:function(a){var b=a.get("shower");this._instanceFor(b)}}),a(d)}),shower.modules.define("shower.global",["Emitter","Plugins"],function(a,b,c){var d=[],e={ready:function(a){return a&&(d.length?d.forEach(a):this.events.once("init",function(b){a(b.get("shower"))})),Boolean(d.length)},init:function(a){a=a||{},shower.modules.require(["Shower"],function(b){new b(a.container,a.options)})},getInited:function(){return d.slice()}};e.events=new b({context:e}),e.plugins=new c(e),e.events.on("notify",function(a){var b=a.get("shower");d.push(b),e.events.emit("init",a)}),a(e)}),shower.modules.define("Options",["Emitter","options.Monitor","util.Store","util.extend","util.inherit"],function(a,b,c,d,e,f){function g(a){g.super.constructor.apply(this,arguments),this.events=new b}f(g,d,{set:function(a,b){var c=[];if("string"==typeof a)g.super.set.call(this,a,b),c.push({name:a,value:b});else{var d=a||{};Object.keys(d).forEach(function(a){var b=d[a];g.super.set.call(this,a,b),c.push({name:a,value:b})})}return c.length&&this.events.emit("set",{items:c}),this},unset:function(a){return g.super.unset(this,a),this.events.emit("unset",{name:a}),this},getMonitor:function(){return new c(this)}}),a(g)}),shower.modules.define("options.Monitor",["util.extend"],function(a,b){function c(a){this._options=a,this._optionsEvents=a.events.group().on(["set","unset"],this._onOptionsChange,this),this._fieldsHanders={}}b(c.prototype,{destroy:function(){this._options=null,this._optionsEvents.offAll(),this._fieldsHanders=null},add:function(a,b,c){if(Array.prototype.isArray.call(null,a)){var d=a;for(var e in d)d.hasOwnProperty(e)&&this._addHandler(e,b,c)}else this._addHandler(a,b,c);return this},remove:function(a,b,c){if(Array.prototype.isArray.call(null,a)){var d=a;for(var e in d)d.hasOwnProperty(e)&&this._remodeHandler(e,b,c)}else this._remodeHandler(a,b,c);return this},getOptions:function(){return this._options},_onOptionsChange:function(a){var b="unset"===a.get("type")?[a.get("name")]:a.get("items");b.forEach(function(a){this._fieldsHanders.hasOwnProperty(a)&&this._fieldsHanders[a].forEach(function(b){b.callback.call(b.context,this._options.get(a))})},this)},_addHandler:function(a,b,c){var d={callback:b,context:c};this._fieldsHanders.hasOwnProperty(fieldName)?this._fieldsHanders[fieldName].push(d):this._fieldsHanders[fieldName]=[d]},_remodeHandler:function(a,b,c){if(!this._fieldsHanders.hasOwnProperty(a))throw new Error("Remove undefined handler for "+a+" field");var d=this._fieldsHanders[a],e=d.filter(function(a){return a.callback===b&&a.context===c})[0];if(!hander)throw new Error("Hanlder for "+a+" not found.");d.splice(d.indexOf(e,1))}}),a(c)}),shower.modules.define("shower.Container",["Emitter","util.bound","util.extend"],function(a,b,c,d){function e(a,c){this.events=new b({context:this,parent:a.events}),this._shower=a,this._element=c,this._isSlideMode=!1,this.init()}d(e.prototype,{init:function(){var a=document.body.classList,b=this._shower.options,c=b.get("mode_full_classname"),d=b.get("mode_list_classname");a.contains(d)||a.contains(c)||a.add(d),this._setupListeners()},destroy:function(){this._clearListeners(),this._element=null,this._shower=null,this._isSlideMode=null},getElement:function(){return this._element},enterSlideMode:function(){var a=document.body.classList,b=this._shower.options;return a.remove(b.get("mode_list_classname")),a.add(b.get("mode_full_classname")),document.body.setAttribute("role","application"),this._applyTransform(this._getTransformScale()),this._isSlideMode=!0,this.events.emit("slidemodeenter"),this},exitSlideMode:function(){var a=document.body.classList,b=this._shower.options;return a.remove(b.get("mode_full_classname")),a.add(b.get("mode_list_classname")),document.body.removeAttribute("role","application"),this._applyTransform("none"),this._isSlideMode=!1,this.scrollToCurrentSlide(),this.events.emit("slidemodeexit"),this},isSlideMode:function(){return this._isSlideMode},scrollToCurrentSlide:function(){var a=this._shower.options.get("slide_active_classname"),b=this._element.querySelector("."+a);return b&&window.scrollTo(0,b.offsetTop),this},_setupListeners:function(){this._showerListeners=this._shower.events.group().on("slideadd",this._onSlideAdd,this).on("slideremove",this._onSlideRemove,this),window.addEventListener("resize",c(this,"_onResize")),document.addEventListener("keydown",c(this,"_onKeyDown"))},_clearListeners:function(){this._showerListeners.offAll(),window.removeEventListener("resize",c(this,"_onResize")),document.removeEventListener("keydown",c(this,"_onKeyDown"))},_getTransformScale:function(){var a=Math.max(document.body.clientWidth/window.innerWidth,document.body.clientHeight/window.innerHeight);return"scale("+1/a+")"},_applyTransform:function(a){["WebkitTransform","MozTransform","msTransform","OTransform","transform"].forEach(function(b){document.body.style[b]=a})},_onResize:function(){this.isSlideMode()&&this._applyTransform(this._getTransformScale())},_onSlideAdd:function(a){var b=a.get("slide");b.events.on("click",this._onSlideClick,this)},_onSlideRemove:function(a){var b=a.get("slide");b.events.off("click",this._onSlideClick,this)},_onSlideClick:function(){this._isSlideMode||this.enterSlideMode()},_onKeyDown:function(a){if(this._shower.isHotkeysEnabled())switch(a.which){case 13:if(a.preventDefault(),!this.isSlideMode()&&a.metaKey){var b=a.shiftKey?0:this._shower.player.getCurrentSlideIndex();this._shower.player.go(b),this.enterSlideMode()}else a.shiftKey?this._shower.player.prev():this._shower.player.next();break;case 27:a.preventDefault(),this.exitSlideMode();break;case 116:if(a.preventDefault(),this.isSlideMode())this.exitSlideMode();else{var b=a.shiftKey?this._shower.player.getCurrentSlideIndex():0;this._shower.player.go(b),this.enterSlideMode()}break;case 80:!this.isSlideMode()&&a.altKey&&a.metaKey&&(a.preventDefault(),this.enterSlideMode())}}}),a(e)}),shower.modules.define("shower.defaultOptions",function(a,b){a({container_selector:".shower",debug_mode:!1,debug_mode_classname:"debug",hotkeys:!0,sessionstore_key:"shower",slides_selector:".shower .slide",mode_full_classname:"full",mode_list_classname:"list",slide_title_element_selector:"H2",slide_active_classname:"active",slide_visited_classname:"visited"})}),shower.modules.define("Shower",["Emitter","Options","shower.global","shower.defaultOptions","shower.Container","shower.Player","shower.Location","shower.slidesParser","util.extend"],function(a,b,c,d,e,f,g,h,i,j){function k(a,i){i=i||{},this.events=new b({context:this}),this.options=new c({},e,i);var j=a||this.options.get("container_selector");"string"==typeof j&&(j=document.querySelector(j)),this.player=new g(this),this.container=new f(this,j),this._slides=[],this._isHotkeysOn=!0,this._liveRegion=null,this._initSlides(),this._initLiveRegion(),this.options.get("debug_mode")&&(document.body.classList.add(this.options.get("debug_mode_classname")),console.info("Debug mode on")),this.options.get("hotkeys")||this.disableHotkeys(),this.location=new h(this),d.events.emit("notify",{shower:this}),this._playerListeners=this.player.events.group().on("activate",this._onPlayerSlideActivate,this)}j(k.prototype,{destroy:function(){this.events.emit("destroy"),this.location.destroy(),this.container.destroy(),this.player.destroy(),this._slides=[]},add:function(a){if(Array.isArray.call(null,a))for(var b=0,c=a.length;b<c;b++)this._addSlide(a[b]);else this._addSlide(a);return this},remove:function(a){var b;if("number"==typeof a)b=a;else{if(this._slides.indexOf(a)==-1)throw new Error("Slide not found");b=this._slides.indexOf(a)}return a=this._slides.splice(b,1)[0],this.events.emit("slideremove",{slide:a}),a.destroy(),this},get:function(a){return this._slides[a]},getSlides:function(){return this._slides.slice()},getSlidesCount:function(){return this._slides.length},getSlideIndex:function(a){return this._slides.indexOf(a)},disableHotkeys:function(){return this._isHotkeysOn=!1,this},enableHotkeys:function(){return this._isHotkeysOn=!0,this},isHotkeysEnabled:function(){return this._isHotkeysOn},getLiveRegion:function(){return this._liveRegion},updateLiveRegion:function(a){return this._liveRegion.innerHTML=a,this},_onPlayerSlideActivate:function(a){var b=a.get("slide");this.updateLiveRegion(b.getContent())},_initSlides:function(){var a=this.options.get("slides_parser")||i,b=a(this.container.getElement(),this.options.get("slides_selector"));this.add(b)},_addSlide:function(a){a.state.set("index",this._slides.length),this._slides.push(a),this.events.emit("slideadd",{slide:a})},_initLiveRegion:function(){var a=document.createElement("section");a.setAttribute("role","region"),a.setAttribute("aria-live","assertive"),a.setAttribute("aria-relevant","additions"),a.setAttribute("aria-label","Slide Content: Auto-updating"),a.className="region",document.body.appendChild(a),this._liveRegion=a}}),a(k)}),shower.modules.define("shower.Location",["util.SessionStore","util.bound","util.extend"],function(a,b,c,d){function e(a){this._shower=a;var c=a.options.get("sessionstore_key")+"-shower.Location";this.state=new b(c,{isSlideMode:!1}),this._showerListeners=null,this._playerListeners=null,this._documentTitle=document.title,this._popStateProcess=null,this._setupListeners(),this._init()}d(e.prototype,{destroy:function(){this._clearListeners()},save:function(){this.state.set("isSlideMode",this._isSlideMode())},_init:function(){var a,b=this._shower,c=window.location.hash.substr(1),d=b.options.get("mode_full_classname");window.location.hash="",(this.state.get("isSlideMode")||document.body.classList.contains(d))&&b.container.enterSlideMode(),""!==c&&(a=this._getSlideById(c),b.player.go("undefined"!=typeof a.index?a.index:0))},_setupListeners:function(){var a=this._shower;this._playerListeners=a.player.events.group().on("activate",this._onSlideActivate,this),this._containerListener=a.container.events.group().on(["slidemodeenter","slidemodeexit"],this._onContainerSlideModeChange,this),window.addEventListener("popstate",c(this,"_onPopstate"))},_clearListeners:function(){window.removeEventListener("popstate",c(this,"_onPopstate")),this._playerListeners.offAll(),this._containerListener.offAll()},_getSlideById:function(a){for(var b,c,d=this._shower.getSlides(),e=d.length-1;e>=0;e--)if(d[e].getId()===a){b=d[e],c=e;break}return{slide:b,index:c}},_onSlideActivate:function(a){window.location.hash=a.get("slide").getId(),this._setTitle()},_onContainerSlideModeChange:function(){this._setTitle(),this.save()},_isSlideMode:function(){return this._shower.container.isSlideMode()},_onPopstate:function(){var a,b=this._shower,c=window.location.hash.substr(1),d=b.player.getCurrentSlide(),e=b.player.getCurrentSlideIndex();this._isSlideMode()&&e===-1?b.player.go(0):e===-1&&""!==window.location.hash&&b.player.go(0),d&&c!==d.getId()&&(a=this._getSlideById(c),b.player.go(a.index))},_setTitle:function(){var a=document.title,b=this._isSlideMode(),c=this._shower.player.getCurrentSlide();if(b&&c){var d=c.getTitle();document.title=d?d+" — "+this._documentTitle:this._documentTitle}else this._documentTitle!==a&&(document.title=this._documentTitle)}}),a(e)}),shower.modules.define("shower.Player",["Emitter","util.bound","util.extend"],function(a,b,c,d){function e(a){this.events=new b({context:this,parent:a.events}),this._shower=a,this._showerListeners=null,this._playerListeners=null,this._currentSlideNumber=-1,this._currentSlide=null,this.init()}d(e.prototype,{init:function(){this._showerListeners=this._shower.events.group().on("slideadd",this._onSlideAdd,this).on("slideremove",this._onSlideRemove,this).on("slidemodeenter",this._onSlideModeEnter,this),this._playerListeners=this.events.group().on("prev",this._onPrev,this).on("next",this._onNext,this).on("prevslide",this._onPrev,this).on("nextslide",this._onNext,this),document.addEventListener("keydown",c(this,"_onKeyDown"))},destroy:function(){this._showerListeners.offAll(),this._playerListeners.offAll(),document.removeEventListener("keydown",c(this,"_onKeyDown")),this._currentSlide=null,this._currentSlideNumber=null,this._shower=null},next:function(){return this.events.emit("next"),this},prev:function(){return this.events.emit("prev"),this},nextSlide:function(){return this.events.emit("nextslide"),this},prevSlide:function(){return this.events.emit("prevslide"),this},first:function(){return this.go(0),this},last:function(){return this.go(this._shower.getSlidesCount()-1),this},go:function(a){"number"!=typeof a&&(a=this._shower.getSlideIndex(a));var b=this._shower.getSlidesCount(),c=this._currentSlide;return a!=this._currentSlideNumber&&a<b&&a>=0&&(c&&c.isActive()&&c.deactivate(),c=this._shower.get(a),this._currentSlide=c,this._currentSlideNumber=a,c.isActive()||c.activate(),this.events.emit("activate",{index:a,slide:c})),this},getCurrentSlide:function(){return this._currentSlide},getCurrentSlideIndex:function(){return this._currentSlideNumber},_onPrev:function(){this._changeSlide(this._currentSlideNumber-1)},_onNext:function(){this._changeSlide(this._currentSlideNumber+1)},_changeSlide:function(a){this.go(a)},_onSlideAdd:function(a){var b=a.get("slide");b.events.on("activate",this._onSlideActivate,this)},_onSlideRemove:function(a){var b=a.get("slide");b.events.off("activate",this._onSlideActivate,this)},_onSlideActivate:function(a){var b=a.get("slide"),c=this._shower.getSlideIndex(b);this.go(c)},_onKeyDown:function(a){if(this._shower.isHotkeysEnabled()&&!/^(?:button|input|select|textarea)$/i.test(a.target.tagName)){this.events.emit("keydown",{event:a});var b,c=!1;switch(a.which){case 33:case 38:case 37:case 72:case 75:b=a.shiftKey?"prevSlide":"prev";break;case 34:case 40:case 39:case 76:case 74:b=a.shiftKey?"nextSlide":"next";break;case 36:c=!0,b="first";break;case 35:c=!0,b="last";break;case 32:this._shower.container.isSlideMode()&&(b=a.shiftKey?"prev":"next")}!b||!c&&(a.altKey||a.ctrlKey||a.metaKey)||(a.preventDefault(),this[b]())}},_onSlideModeEnter:function(){this._currentSlide||this.go(0)}}),a(e)}),shower.modules.define("shower.slidesParser",["Slide"],function(a,b){function c(a,c){var d=a.querySelectorAll(c);return d=Array.prototype.slice.call(d),d.map(function(a,c){var d=new b(a);return a.id||(a.id=c+1),d})}a(c)}),shower.modules.define("Slide",["shower.defaultOptions","Emitter","Options","slide.Layout","slide.layoutFactory","util.Store","util.extend"],function(a,b,c,d,e,f,g,h){function i(a,b,e){this.events=new c,this.options=new d(b),this.layout=null,this.state=new g({visited:0,index:null},e),this._content=a,this._isVisited=this.state.get("visited")>0,this._isActive=!1,this.init()}h(i.prototype,{init:function(){this.layout="string"==typeof this._content?new f.createLayout({content:this._content}):new e(this._content,this.options),this.layout.setParent(this),this._setupListeners()},destroy:function(){this._clearListeners(),this._isActive=null,this.options=null,this.layout.destroy()},activate:function(){this._isActive=!0;var a=this.state.get("visited");return this.state.set("visited",++a),this.events.emit("activate",{slide:this}),this},deactivate:function(){return this._isActive=!1,this.events.emit("deactivate",{slide:this}),this},isActive:function(){return this._isActive},isVisited:function(){return this.state.get("visited")>0},getTitle:function(){return this.layout.getTitle()},setTitle:function(a){return this.layout.setTitle(a),this},getId:function(){return this.layout.getElement().id},getContent:function(){return this.layout.getContent()},_setupListeners:function(){this.layoutListeners=this.layout.events.group().on("click",this._onSlideClick,this)},_clearListeners:function(){this.layoutListeners.offAll()},_onSlideClick:function(){this.activate(),this.events.emit("click",{slide:this})}}),a(i)}),shower.modules.define("slide.Layout",["Options","shower.defaultOptions","Emitter","util.bound","util.extend"],function(a,b,c,d,e,f){function g(a,e){this.options=new b({title_element_selector:c.slide_title_element_selector,active_classname:c.slide_active_classname,visited_classname:c.slide_visited_classname},e),this.events=new d,this._element=a,this._parent=null,this._parentElement=null,this.init()}f(g.prototype,{init:function(){var a=this._element.parentNode;a?this._parentElement=a:this.setParentElement(a)},destroy:function(){this.setParent(null)},setParent:function(a){this._parent!=a&&(this._clearListeners(),this._parent=a,this._parent&&this._setupListeners(),this.events.emit("parentchange",{parent:a}))},getParent:function(){return this._parent},setParentElement:function(a){a!=this._parentElement&&(this._parentElement=a,a.appendChild(this._element),this.events.emit("parentelementchange",{parentElement:a}))},getParentElement:function(){return this._parentElement},getElement:function(){return this._element},setTitle:function(a){var b=this.options.get("title_element_selector"),c=this._element.querySelector(b);c?c.innerHTML=a:(c=document.createElement(b),c.innerHTML=a,this._element.insertBefore(c,this._element.firstChild))},getTitle:function(){var a=this.options.get("title_element_selector"),b=this._element.querySelector(a);return b?b.textContent:null},getData:function(a){var b=this._element;return b.dataset?b.dataset[a]:b.getAttribute("data-"+a)},getContent:function(){return this._element.innerHTML},_setupListeners:function(){this._slideListeners=this._parent.events.group().on("activate",this._onSlideActivate,this).on("deactivate",this._onSlideDeactivate,this),this._element.addEventListener("click",e(this,"_onSlideClick"),!1)},_clearListeners:function(){this._slideListeners&&this._slideListeners.offAll(),this._element.removeEventListener("click",e(this,"_onSlideClick"))},_onSlideActivate:function(){this._element.classList.add(this.options.get("active_classname"))},_onSlideDeactivate:function(){var a=this._element.classList;a.remove(this.options.get("active_classname")),a.add(this.options.get("visited_classname"))},_onSlideClick:function(){this.events.emit("click")}}),a(g)}),shower.modules.define("slide.layoutFactory",["slide.Layout","util.extend"],function(a,b,c){var d={};c(d,{createLayout:function(a){a=a||{};var e=d._createElement(c({content:"",contentType:"slide"},a));return new b(e)},_createElement:function(a){var b=document.createElement("section");return b.innerHTML=a.content,b.classList.add(a.contentType),b}}),a(d)}),shower.modules.define("util.bound",function(a){function b(a,b){return a["__bound_"+b]||(a["__bound_"+b]=a[b].bind(a))}a(b)}),shower.modules.define("util.extend",function(a){function b(a){if(!a)throw new Error("util.extend: Target not found");return"undefined"==typeof Object.assign?c.apply(null,arguments):Object.assign.apply(null,arguments)}function c(a){for(var b=1,c=arguments.length;b<c;b++){var d=arguments[b];for(var e in d)d.hasOwnProperty(e)&&(a[e]=d[e])}return a}a(b)}),shower.modules.define("util.inherit",["util.extend"],function(a,b){var c=function(a,c,d){return a.prototype=Object.create(c.prototype),a.prototype.constructor=a,a.super=c.prototype,a.super.constructor=c,d&&b(a.prototype,d),a.prototype};a(c)}),shower.modules.define("util.SessionStore",["util.Store","util.inherit"],function(a,b,c){function d(a,b){this._storageKey=a;var c=this._loadFromStorage()||b;d.super.constructor.call(this,c)}c(d,b,{set:function(a,b){d.super.set.call(this,a,b),this._saveToStorage()},unset:function(a){d.super.unset.call(this,a),this._saveToStorage()},_saveToStorage:function(){window.sessionStorage.setItem(this._storageKey,JSON.stringify(this.getAll()))},_loadFromStorage:function(){var a=window.sessionStorage.getItem(this._storageKey);return a&&JSON.parse(a)}}),a(d)}),shower.modules.define("util.Store",["util.extend"],function(a,b){function c(a){this._data=a||{};for(var c=1,d=arguments.length;c<d;c++)b(this._data,arguments[c]||{})}b(c.prototype,{get:function(a,b){return this._data.hasOwnProperty(a)?this._data[a]:b},getAll:function(){return b({},this._data)},set:function(a,b){return this._data[a]=b,this},unset:function(a){if(!this._data.hasOwnProperty(a))throw new Error(a+" not found.");return delete this._data[a],this},destroy:function(){this._data={}}}),a(c)}),shower.modules.define("shower-next",["shower","Emitter","util.extend"],function(a,b,c,d){function e(a,b){b=b||{},this.events=new c({context:this}),this._shower=a,this._elementsSelector=b.selector||g,this._elements=[],this._innerComplete=0,this._setupListeners(),this._shower.player.getCurrentSlideIndex()!=-1&&this._onSlideActivate()}var f="shower-timer",g=".next";d(e.prototype,{destroy:function(){this._clearListeners(),this._elements=null,this._elementsSelector=null,this._innerComplete=null,this._shower=null},next:function(){if(!this._elements.length)throw new Error("Inner nav elements not found.");return this._innerComplete++,this._go(),this.events.emit("next"),this},prev:function(){if(!this._elements.length)throw new Error("Inner nav elements not found.");return this._innerComplete--,this._go(),this.events.emit("prev"),this},getLength:function(){return this._elements=this._getElements(),this._elements.length},getComplete:function(){return this._innerComplete},_setupListeners:function(){var a=this._shower;this._showerListeners=a.events.group().on("destroy",this.destroy,this),this._playerListeners=a.player.events.group().on("activate",this._onSlideActivate,this).on("next",this._onNext,this).on("prev",this._onPrev,this);var c=b.plugins.get(f,a);c?this._setupTimerPluginListener(c):this._pluginsListeners=b.plugins.events.group().on("add",function(a){a.get("name")===f&&(this._setupTimerPluginListener(),this._pluginsListeners.offAll())},this)},_setupTimerPluginListener:function(a){if(!a){b.plugins.get(f,this._shower)}a.events.on("next",this._onNext,this,100)},_clearListeners:function(){this._showerListeners.offAll(),this._playerListeners.offAll(),this._pluginsListeners&&this._pluginsListeners.offAll()},_getElements:function(){var a=this._shower.player.getCurrentSlide().layout,b=a.getElement();return Array.prototype.slice.call(b.querySelectorAll(this._elementsSelector))},_onNext:function(a){var b=this._elements.length,c=this._shower.container.isSlideMode();c&&b&&this._innerComplete<b&&(a.preventDefault(),this.next())},_onPrev:function(a){var b=this._elements.length,c=(this._shower.container.isSlideMode(),this._innerComplete);b&&c<b&&c>0&&(a.preventDefault(),this.prev())},_go:function(){for(var a=0,b=this._elements.length;a<b;a++){var c=this._elements[a];a<this._innerComplete?c.classList.add("active"):c.classList.remove("active")}},_onSlideActivate:function(){this._elements=this._getElements(),this._innerComplete=this._getInnerComplete()},_getInnerComplete:function(){return this._elements.filter(function(a){return a.classList.contains("active")}).length}}),a(e)}),shower.modules.require(["shower"],function(a){a.plugins.add("shower-next")}),shower.modules.define("shower-progress",["util.extend"],function(a,b){function c(a,b){b=b||{}, | ||
this._shower=a,this._playerListeners=null,this._element=null,this._elementSelector=b.selector||".progress";var c=this._shower.container.getElement();this._element=c.querySelector(this._elementSelector),this._element&&(this._setupListeners(),this._element.setAttribute("role","progressbar"),this._element.setAttribute("aria-valuemin","0"),this._element.setAttribute("aria-valuemax","100"),this.updateProgress())}b(c.prototype,{destroy:function(){this._clearListeners(),this._shower=null},updateProgress:function(){var a=this._shower.getSlidesCount(),b=this._shower.player.getCurrentSlideIndex(),c=100/(a-1)*b;this._element&&(this._element.style.width=c.toFixed(2)+"%",this._element.setAttribute("aria-valuenow",c.toFixed()),this._element.setAttribute("aria-valuetext","Slideshow Progress: "+c.toFixed()+"%"))},_setupListeners:function(){var a=this._shower;this._showerListeners=a.events.group().on("destroy",this.destroy,this),this._playerListeners=a.player.events.group().on("activate",this._onSlideChange,this)},_clearListeners:function(){this._showerListeners&&this._showerListeners.offAll(),this._playerListeners&&this._playerListeners.offAll()},_onSlideChange:function(){this.updateProgress()}}),a(c)}),shower.modules.require(["shower"],function(a){a.plugins.add("shower-progress")}),shower.modules.define("shower-timer",["shower","Emitter","util.extend"],function(a,b,c,d){function e(a){this.events=new c,this._shower=a,this._timer=null,this._showerListeners=null,this._playerListeners=null,this._pluginsListeners=null,this._setupListeners()}var f="shower-next";d(e.prototype,{destroy:function(){this._clearTimer(),this._clearListeners(),this._shower=null},run:function(a){this._initTimer(a)},stop:function(){this._clearTimer()},_setupListeners:function(){var a=this._shower;this.events.on("next",this._onNext,this),this._showerListeners=a.events.group().on("destroy",this.destroy,this),this._playerListeners=a.player.events.group().on("keydown",this._clearTimer,this).on("activate",this._onSlideActivate,this),this._nextPlugin=b.plugins.get(f,a),this._nextPlugin||(this._pluginsListeners=a.plugins.events.group().on("pluginadd",function(b){b.get("name")===f&&(this._nextPlugin=a.plugins.get(f),this._pluginsListeners.offAll())},this)),a.player.getCurrentSlideIndex()!=-1&&this._onSlideActivate()},_clearListeners:function(){this._showerListeners.offAll(),this._playerListeners.offAll()},_onSlideActivate:function(){this._clearTimer();var a=this._shower.player.getCurrentSlide();if(this._shower.container.isSlideMode()&&a.state.get("visited")<2){var b=a.layout.getData("timing");b&&/^(\d{1,2}:)?\d{1,3}$/.test(b)&&(b.indexOf(":")!==-1?(b=b.split(":"),b=1e3*(60*parseInt(b[0],10)+parseInt(b[1],10))):b=1e3*parseInt(b,10),0!==b&&this._initTimer(b))}},_initTimer:function(a){var b=this.events,c=(this._shower,this._nextPlugin);c&&c.getLength()&&c.getLength()!=c.getComplete()&&(a/=c.getLength()+1),this._timer=setInterval(function(){b.emit("next")},a)},_clearTimer:function(){this._timer&&(clearInterval(this._timer),this._timer=null)},_onNext:function(){this._clearTimer(),this._shower.player.next()}}),a(e)}),shower.modules.require(["shower"],function(a){a.plugins.add("shower-timer")}),shower.modules.define("shower-touch",["util.extend"],function(a,b){function c(a,b){b=b||{},this._shower=a,this._setupListeners()}var d=["VIDEO","AUDIO","A","BUTTON","INPUT"];b(c.prototype,{destroy:function(){this._clearListeners(),this._shower=null},_setupListeners:function(){var a=this._shower;this._showerListeners=a.events.group().on("add",this._onSlideAdd,this),this._bindedTouchStart=this._onTouchStart.bind(this),this._bindedTouchMove=this._onTouchMove.bind(this),this._shower.getSlides().forEach(this._addTouchStartListener,this),document.addEventListener("touchmove",this._bindedTouchMove,!0)},_clearListeners:function(){this._showerListeners.offAll(),this._shower.getSlides().forEach(this._removeTouchStartListener,this),document.removeEventListener("touchmove",this._bindedTouchMove,!1)},_onSlideAdd:function(a){var b=a.get("slide");this._addTouchStartListener(b)},_addTouchStartListener:function(a){var b=a.layout.getElement();b.addEventListener("touchstart",this._bindedTouchStart,!1)},_removeTouchStartListener:function(a){var b=a.layout.getElement();b.removeEventListener("touchstart",this._bindedTouchStart,!1)},_onTouchStart:function(a){var b,c=this._shower,d=c.container.isSlideMode(),e=a.target,f=this._getSlideByElement(a.currentTarget);f&&(d&&!this._isInteractiveElement(e)&&(a.preventDefault(),b=a.touches[0].pageX,b>window.innerWidth/2?c.player.next():c.player.prev()),d||f.activate())},_onTouchMove:function(a){this._shower.container.isSlideMode()&&a.preventDefault()},_getSlideByElement:function(a){for(var b=this._shower.getSlides(),c=null,d=0,e=b.length;d<e;d++)if(a.id===b[d].getId()){c=this._shower.get(d);break}return c},_isInteractiveElement:function(a){return d.some(function(b){return b===a.tagName})}}),a(c)}),shower.modules.require(["shower"],function(a){a.plugins.add("shower-touch")}); | ||
!function(global){var undef,DECL_STATES={NOT_RESOLVED:"NOT_RESOLVED",IN_RESOLVING:"IN_RESOLVING",RESOLVED:"RESOLVED"},create=function(){var curOptions={trackCircularDependencies:!0,allowMultipleDeclarations:!0},modulesStorage={},waitForNextTick=!1,pendingRequires=[],define=function(name,deps,declFn){declFn||(declFn=deps,deps=[]);var module=modulesStorage[name];module||(module=modulesStorage[name]={name:name,decl:undef}),module.decl={name:name,prev:module.decl,fn:declFn,state:DECL_STATES.NOT_RESOLVED,deps:deps,dependents:[],exports:undef}},require=function(modules,cb,errorCb){"string"==typeof modules&&(modules=[modules]),waitForNextTick||(waitForNextTick=!0,nextTick(onNextTick)),pendingRequires.push({deps:modules,cb:function(exports,error){error?(errorCb||onError)(error):cb.apply(global,exports)}})},getState=function(name){var module=modulesStorage[name];return module?DECL_STATES[module.decl.state]:"NOT_DEFINED"},isDefined=function(name){return!!modulesStorage[name]},setOptions=function(options){for(var name in options)options.hasOwnProperty(name)&&(curOptions[name]=options[name])},getStat=function(){var module,res={};for(var name in modulesStorage)modulesStorage.hasOwnProperty(name)&&(module=modulesStorage[name],(res[module.decl.state]||(res[module.decl.state]=[])).push(name));return res},onNextTick=function(){waitForNextTick=!1,applyRequires()},applyRequires=function(){var require,requiresToProcess=pendingRequires,i=0;for(pendingRequires=[];require=requiresToProcess[i++];)requireDeps(null,require.deps,[],require.cb)},requireDeps=function(fromDecl,deps,path,cb){var unresolvedDepsCnt=deps.length;unresolvedDepsCnt||cb([]);for(var dep,decl,decls=[],onDeclResolved=function(_,error){if(error)return void cb(null,error);if(!--unresolvedDepsCnt){for(var decl,exports=[],i=0;decl=decls[i++];)exports.push(decl.exports);cb(exports)}},i=0,len=unresolvedDepsCnt;i<len;){if(dep=deps[i++],"string"==typeof dep){if(!modulesStorage[dep])return void cb(null,buildModuleNotFoundError(dep,fromDecl));decl=modulesStorage[dep].decl}else decl=dep;decls.push(decl),startDeclResolving(decl,path,onDeclResolved)}},startDeclResolving=function(decl,path,cb){if(decl.state===DECL_STATES.RESOLVED)return void cb(decl.exports);if(decl.state===DECL_STATES.IN_RESOLVING)return void(curOptions.trackCircularDependencies&&isDependenceCircular(decl,path)?cb(null,buildCircularDependenceError(decl,path)):decl.dependents.push(cb));if(decl.dependents.push(cb),decl.prev&&!curOptions.allowMultipleDeclarations)return void provideError(decl,buildMultipleDeclarationError(decl));curOptions.trackCircularDependencies&&(path=path.slice()).push(decl);var isProvided=!1,deps=decl.prev?decl.deps.concat([decl.prev]):decl.deps;decl.state=DECL_STATES.IN_RESOLVING,requireDeps(decl,deps,path,function(depDeclsExports,error){return error?void provideError(decl,error):(depDeclsExports.unshift(function(exports,error){return isProvided?void cb(null,buildDeclAreadyProvidedError(decl)):(isProvided=!0,void(error?provideError(decl,error):provideDecl(decl,exports)))}),void decl.fn.apply({name:decl.name,deps:decl.deps,global:global},depDeclsExports))})},provideDecl=function(decl,exports){decl.exports=exports,decl.state=DECL_STATES.RESOLVED;for(var dependent,i=0;dependent=decl.dependents[i++];)dependent(exports);decl.dependents=undef},provideError=function(decl,error){decl.state=DECL_STATES.NOT_RESOLVED;for(var dependent,i=0;dependent=decl.dependents[i++];)dependent(null,error);decl.dependents=[]};return{create:create,define:define,require:require,getState:getState,isDefined:isDefined,setOptions:setOptions,getStat:getStat}},onError=function(e){nextTick(function(){throw e})},buildModuleNotFoundError=function(name,decl){return Error(decl?'Module "'+decl.name+'": can\'t resolve dependence "'+name+'"':'Required module "'+name+"\" can't be resolved")},buildCircularDependenceError=function(decl,path){for(var pathDecl,strPath=[],i=0;pathDecl=path[i++];)strPath.push(pathDecl.name);return strPath.push(decl.name),Error('Circular dependence has been detected: "'+strPath.join(" -> ")+'"')},buildDeclAreadyProvidedError=function(decl){return Error('Declaration of module "'+decl.name+'" has already been provided')},buildMultipleDeclarationError=function(decl){return Error('Multiple declarations of module "'+decl.name+'" have been detected')},isDependenceCircular=function(decl,path){for(var pathDecl,i=0;pathDecl=path[i++];)if(decl===pathDecl)return!0;return!1},nextTick=function(){var fns=[],enqueueFn=function(fn){return 1===fns.push(fn)},callFns=function(){var fnsToCall=fns,i=0,len=fns.length;for(fns=[];i<len;)fnsToCall[i++]()};if("object"==typeof process&&process.nextTick)return function(fn){enqueueFn(fn)&&process.nextTick(callFns)};if(global.setImmediate)return function(fn){enqueueFn(fn)&&global.setImmediate(callFns)};if(global.postMessage&&!global.opera){var isPostMessageAsync=!0;if(global.attachEvent){var checkAsync=function(){isPostMessageAsync=!1};global.attachEvent("onmessage",checkAsync),global.postMessage("__checkAsync","*"),global.detachEvent("onmessage",checkAsync)}if(isPostMessageAsync){var msg="__modules"+ +new Date,onMessage=function(e){e.data===msg&&(e.stopPropagation&&e.stopPropagation(),callFns())};return global.addEventListener?global.addEventListener("message",onMessage,!0):global.attachEvent("onmessage",onMessage),function(fn){enqueueFn(fn)&&global.postMessage(msg,"*")}}}var doc=global.document;if("onreadystatechange"in doc.createElement("script")){var head=doc.getElementsByTagName("head")[0],createScript=function(){var script=doc.createElement("script");script.onreadystatechange=function(){script.parentNode.removeChild(script),script=script.onreadystatechange=null,callFns()},head.appendChild(script)};return function(fn){enqueueFn(fn)&&createScript()}}return function(fn){enqueueFn(fn)&&setTimeout(callFns,0)}}();"object"==typeof exports?module.exports=create():global.modules=create()}("undefined"!=typeof window?window:global),function(global){function initialize(){global.shower.modules.require("shower.defaultOptions",function(defaultOptions){var hasOptions=global.hasOwnProperty("showerOptions"),options=global.shower.options,containerSelector=options.shower_selector||defaultOptions.container_selector,element=document.querySelector(containerSelector),getDataAttr=getData.bind(this,element),autoInit="undefined"==typeof options.auto_init||options.auto_init;if(!element)throw new Error("Shower element with selector "+containerSelector+" not found.");("false"!==getDataAttr("auto-init")||hasOptions&&autoInit)&&(hasOptions||dataAttrsOptions.forEach(function(name){var value=getDataAttr(name);null!==value&&"undefined"!=typeof value&&(options[name.replace(/-/g,"_")]=value)}),global.shower.modules.require(["shower"],function(sh){sh.init({container:element,options:options})}))})}function getData(element,name){return element.dataset?element.dataset[name]:element.getAttribute("data-"+name)}var dataAttrsOptions=["debug-mode","slides-selector","hotkeys"];global.shower={modules:modules.create(),options:global.showerOptions||{}},/interactive|complete|loaded/.test(document.readyState)?initialize():document.addEventListener("DOMContentLoaded",initialize)}(window),shower.modules.define("shower",["shower.global"],function(provide,showerGlobal){provide(showerGlobal)}),shower.modules.define("Emitter",["emitter.Event","emitter.EventGroup","util.extend"],function(provide,EmitterEvent,EventGroup,extend){function EventEmitter(parameters){parameters=parameters||{},this._context=parameters.context,this._parent=parameters.parent,this._listeners={}}function sortByPriority(aListener,bListener){return aListener.priority-bListener.priority}extend(EventEmitter.prototype,{on:function(types,callback,context,priority){if("undefined"==typeof callback)throw new Error("Callback is not defined.");if(priority=priority||0,"string"==typeof types)this._addListener(types,callback,context,priority);else for(var i=0,l=types.length;i<l;i++)this._addListener(types[i],callback,context,priority);return this},off:function(types,callback,context,priority){if(priority=priority||0,"string"==typeof types)this._removeListener(types,callback,context,priority);else for(var i=0,l=types.length;i<l;i++)this._removeListener(types[i],callback,context,priority);return this},once:function(eventType,callback,context,priority){var handler=function(event){this.off(eventType,handler,this,priority),context?callback.call(context,event):callback(event)};return this.on(eventType,handler,this,priority),this},emit:function(eventType,eventObject){var event=eventObject,listeners=this._listeners;event&&"function"==typeof event.get||(event=this.createEventObject(eventType,eventObject,this._context)),event.isPropagationStopped()||(listeners.hasOwnProperty(eventType)&&this._callListeners(listeners[eventType],event),this._parent&&!event.isPropagationStopped()&&this._parent.emit(eventType,event))},createEventObject:function(type,eventData,target){var data={target:target,type:type};return new EmitterEvent(eventData?extend(data,eventData):data)},setParent:function(parent){this._parent!=parent&&(this._parent=parent)},getParent:function(){return this._parent},group:function(){return new EventGroup(this)},_addListener:function(eventType,callback,context,priority){var listener={callback:callback,context:context,priority:priority};this._listeners[eventType]?this._listeners[eventType].push(listener):this._listeners[eventType]=[listener]},_removeListener:function(eventType,callback,context,priority){var listener,listeners=this._listeners[eventType];if(listeners){for(var foundIndex=-1,i=0,l=listeners.length;i<l;i++)listener=listeners[i],listener.callback==callback&&listener.context==context&&listener.priority==priority&&(foundIndex=i);foundIndex!=-1&&(1==listeners.length?this._clearType(eventType):listeners.splice(foundIndex,1))}},_clearType:function(eventType){this._listeners.hasOwnProperty(eventType)&&delete this._listeners[eventType]},_callListeners:function(listeners,event){var i=listeners.length-1;for(listeners.sort(sortByPriority);i>=0&&!event.defaultPrevented();){var listener=listeners[i];listener&&(listener.context?listener.callback.call(listener.context,event):listener.callback(event)),i--}}}),provide(EventEmitter)}),shower.modules.define("emitter.Event",["util.extend"],function(provide,extend){function Event(data){this._data=data,this._preventDefault=!1,this._stopPropagation=!1}extend(Event.prototype,{get:function(key){return this._data[key]},preventDefault:function(){return this._preventDefault=!0,this._preventDefault},defaultPrevented:function(){return this._preventDefault},stopPropagation:function(){return this._stopPropagation=!0,this._stopPropagation},isPropagationStopped:function(){return this._stopPropagation}}),provide(Event)}),shower.modules.define("emitter.EventGroup",["util.extend"],function(provide,extend){function EventGroup(eventManager){this.events=eventManager,this._listeners=[]}extend(EventGroup.prototype,{on:function(types,callback,context){if(Array.isArray(types))for(var i=0,k=types.length;i<k;i++)this._listeners.push(types[i],callback,context);else this._listeners.push(types,callback,context);return this.events.on(types,callback,context),this},off:function(types,callback,context){if(Array.isArray(types))for(var i=0,k=types.length;i<k;i++)this._removeListener(types[i],callback,context);else this._removeListener(types,callback,context);return this},offAll:function(){for(var i=0,k=this._listeners.length;i<k;i+=3)this.events.off(this._listeners[i],this._listeners[i+1],this._listeners[i+2]);return this._listeners.length=0,this},_removeListener:function(type,callback,context){for(var index=this._listeners.indexOf(type,0);index!=-1;)this._listeners[index+1]==callback&&this._listeners[index+2]==context&&(this._listeners.splice(index,3),this.events.off(type,callback,context)),index=this._listeners.indexOf(type,index)}}),provide(EventGroup)}),shower.modules.define("Plugins",["Emitter","util.extend"],function(provide,EventEmitter,extend){function Plugins(showerGlobal){this.events=new EventEmitter({context:this}),this._showerGlobal=showerGlobal,this._showerInstances=showerGlobal.getInited(),this._plugins={},this._instances=[],showerGlobal.events.on("init",this._onShowerInit,this)}extend(Plugins.prototype,{destroy:function(){this._showerGlobal.events.off("init",this._onShowerInit,this),this._plugins=null},add:function(name,options){if(this._plugins.hasOwnProperty(name))throw new Error("Plugin "+name+" already exist.");return this._requireAndAdd({name:name,options:options}),this},remove:function(name){if(!this._plugins.hasOwnProperty(name))throw new Error("Plugin "+name+" not found.");return delete this._plugins[name],this.events.emit("remove",{name:name}),this},get:function(name,shower){var pluginInstance,plugin=this._plugins[name];if(plugin&&shower)for(var i=0,l=this._instances.length;i<l;i++){var instanceInfo=this._instances[i];instanceInfo.plugin.name===name&&instanceInfo.shower===shower&&(pluginInstance=instanceInfo.instance)}return pluginInstance},_requireAndAdd:function(plugin){shower.modules.require(plugin.name,function(pluginClass){plugin.class=pluginClass,this._plugins[plugin.name]=plugin,this._instancePlugin(plugin)}.bind(this))},_instancePlugin:function(plugin){this._showerInstances.forEach(function(shower){this._instance(plugin,shower)},this),this.events.emit("add",{name:plugin.name})},_instanceFor:function(shower){for(var name in this._plugins)this._plugins.hasOwnProperty(name)&&this._instance(this._plugins[name],shower)},_instance:function(plugin,shower){var options=plugin.options||shower.options.get("plugin_"+plugin.name);this._instances.push({shower:shower,plugin:plugin,instance:new plugin.class(shower,options)})},_onShowerInit:function(event){var shower=event.get("shower");this._instanceFor(shower)}}),provide(Plugins)}),shower.modules.define("shower.global",["Emitter","Plugins"],function(provide,EventEmitter,Plugins){var inited=[],sh={ready:function(callback){return callback&&(inited.length?inited.forEach(callback):this.events.once("init",function(e){callback(e.get("shower"))})),Boolean(inited.length)},init:function(initOptions){initOptions=initOptions||{},shower.modules.require(["Shower"],function(Shower){new Shower(initOptions.container,initOptions.options)})},getInited:function(){return inited.slice()}};sh.events=new EventEmitter({context:sh}),sh.plugins=new Plugins(sh),sh.events.on("notify",function(e){var showerInstance=e.get("shower");inited.push(showerInstance),sh.events.emit("init",e)}),provide(sh)}),shower.modules.define("Options",["Emitter","options.Monitor","util.Store","util.extend","util.inherit"],function(provide,EventEmitter,Monitor,Store,extend,inherit){function Options(initOptions){Options.super.constructor.apply(this,arguments),this.events=new EventEmitter}inherit(Options,Store,{set:function(name,value){var changed=[];if("string"==typeof name)Options.super.set.call(this,name,value),changed.push({name:name,value:value});else{var options=name||{};Object.keys(options).forEach(function(optionName){var optionValue=options[optionName];Options.super.set.call(this,optionName,optionValue),changed.push({name:optionName,value:optionValue})})}return changed.length&&this.events.emit("set",{items:changed}),this},unset:function(name){return Options.super.unset(this,name),this.events.emit("unset",{name:name}),this},getMonitor:function(){return new Monitor(this)}}),provide(Options)}),shower.modules.define("options.Monitor",["util.extend"],function(provide,extend){function Monitor(options){this._options=options,this._optionsEvents=options.events.group().on(["set","unset"],this._onOptionsChange,this),this._fieldsHanders={}}extend(Monitor.prototype,{destroy:function(){this._options=null,this._optionsEvents.offAll(),this._fieldsHanders=null},add:function(field,callback,context){if(Array.prototype.isArray.call(null,field)){var fields=field;for(var fieldName in fields)fields.hasOwnProperty(fieldName)&&this._addHandler(fieldName,callback,context)}else this._addHandler(field,callback,context);return this},remove:function(field,callback,context){if(Array.prototype.isArray.call(null,field)){var fields=field;for(var fieldName in fields)fields.hasOwnProperty(fieldName)&&this._remodeHandler(fieldName,callback,context)}else this._remodeHandler(field,callback,context);return this},getOptions:function(){return this._options},_onOptionsChange:function(event){var fieldsUpdated="unset"===event.get("type")?[event.get("name")]:event.get("items");fieldsUpdated.forEach(function(field){this._fieldsHanders.hasOwnProperty(field)&&this._fieldsHanders[field].forEach(function(handler){handler.callback.call(handler.context,this._options.get(field))})},this)},_addHandler:function(field,callback,context){var handler={callback:callback,context:context};this._fieldsHanders.hasOwnProperty(fieldName)?this._fieldsHanders[fieldName].push(handler):this._fieldsHanders[fieldName]=[handler]},_remodeHandler:function(field,callback,context){if(!this._fieldsHanders.hasOwnProperty(field))throw new Error("Remove undefined handler for "+field+" field");var fieldsHanders=this._fieldsHanders[field],handler=fieldsHanders.filter(function(hander){return hander.callback===callback&&hander.context===context})[0];if(!hander)throw new Error("Hanlder for "+field+" not found.");fieldsHanders.splice(fieldsHanders.indexOf(handler,1))}}),provide(Monitor)}),shower.modules.define("Shower",["Emitter","Options","shower.global","shower.defaultOptions","shower.Container","shower.Player","shower.Location","shower.slidesParser","util.extend"],function(provide,EventEmitter,Options,showerGlobal,defaultShowerOptions,Container,Player,Location,defaultSlidesParser,extend){function Shower(container,options){options=options||{},this.events=new EventEmitter({context:this}),this.options=new Options({},defaultShowerOptions,options);var containerElement=container||this.options.get("container_selector");"string"==typeof containerElement&&(containerElement=document.querySelector(containerElement)),this.player=new Player(this),this.container=new Container(this,containerElement),this._slides=[],this._isHotkeysOn=!0,this._liveRegion=null,this._initSlides(),this._initLiveRegion(),this.options.get("debug_mode")&&(document.body.classList.add(this.options.get("debug_mode_classname")),console.info("Debug mode on")),this.options.get("hotkeys")||this.disableHotkeys(),this.location=new Location(this),showerGlobal.events.emit("notify",{shower:this}),this._playerListeners=this.player.events.group().on("activate",this._onPlayerSlideActivate,this)}extend(Shower.prototype,{destroy:function(){this.events.emit("destroy"),this.location.destroy(),this.container.destroy(),this.player.destroy(),this._slides=[]},add:function(slide){if(Array.isArray.call(null,slide))for(var i=0,k=slide.length;i<k;i++)this._addSlide(slide[i]);else this._addSlide(slide);return this},remove:function(slide){var slidePosition;if("number"==typeof slide)slidePosition=slide;else{if(this._slides.indexOf(slide)==-1)throw new Error("Slide not found");slidePosition=this._slides.indexOf(slide)}return slide=this._slides.splice(slidePosition,1)[0],this.events.emit("slideremove",{slide:slide}),slide.destroy(),this},get:function(index){return this._slides[index]},getSlides:function(){return this._slides.slice()},getSlidesCount:function(){return this._slides.length},getSlideIndex:function(slide){return this._slides.indexOf(slide)},disableHotkeys:function(){return this._isHotkeysOn=!1,this},enableHotkeys:function(){return this._isHotkeysOn=!0,this},isHotkeysEnabled:function(){return this._isHotkeysOn},getLiveRegion:function(){return this._liveRegion},updateLiveRegion:function(content){return this._liveRegion.innerHTML=content,this},_onPlayerSlideActivate:function(event){var currentSlide=event.get("slide");this.updateLiveRegion(currentSlide.getContent())},_initSlides:function(){var slidesParser=this.options.get("slides_parser")||defaultSlidesParser,slides=slidesParser(this.container.getElement(),this.options.get("slides_selector"));this.add(slides)},_addSlide:function(slide){slide.state.set("index",this._slides.length),this._slides.push(slide),this.events.emit("slideadd",{slide:slide})},_initLiveRegion:function(){var liveRegion=document.createElement("section");liveRegion.setAttribute("role","region"),liveRegion.setAttribute("aria-live","assertive"),liveRegion.setAttribute("aria-relevant","additions"),liveRegion.setAttribute("aria-label","Slide Content: Auto-updating"),liveRegion.className="region",document.body.appendChild(liveRegion),this._liveRegion=liveRegion}}),provide(Shower)}),shower.modules.define("shower.Container",["Emitter","util.bound","util.extend"],function(provide,EventEmitter,bound,extend){function Container(shower,containerElement){this.events=new EventEmitter({context:this,parent:shower.events}),this._shower=shower,this._element=containerElement,this._isSlideMode=!1,this.init()}extend(Container.prototype,{init:function(){var bodyClassList=document.body.classList,showerOptions=this._shower.options,fullModeClass=showerOptions.get("mode_full_classname"),listModeClass=showerOptions.get("mode_list_classname");bodyClassList.contains(listModeClass)||bodyClassList.contains(fullModeClass)||bodyClassList.add(listModeClass),this._setupListeners()},destroy:function(){this._clearListeners(),this._element=null,this._shower=null,this._isSlideMode=null},getElement:function(){return this._element},enterSlideMode:function(){var bodyClassList=document.body.classList,showerOptions=this._shower.options;return bodyClassList.remove(showerOptions.get("mode_list_classname")),bodyClassList.add(showerOptions.get("mode_full_classname")),document.body.setAttribute("role","application"),this._applyTransform(this._getTransformScale()),this._isSlideMode=!0,this.events.emit("slidemodeenter"),this},exitSlideMode:function(){var elementClassList=document.body.classList,showerOptions=this._shower.options;return elementClassList.remove(showerOptions.get("mode_full_classname")),elementClassList.add(showerOptions.get("mode_list_classname")),document.body.removeAttribute("role","application"),this._applyTransform("none"),this._isSlideMode=!1,this.scrollToCurrentSlide(),this.events.emit("slidemodeexit"),this},isSlideMode:function(){return this._isSlideMode},scrollToCurrentSlide:function(){var activeSlideClassName=this._shower.options.get("slide_active_classname"),slideElement=this._element.querySelector("."+activeSlideClassName);return slideElement&&window.scrollTo(0,slideElement.offsetTop),this},_setupListeners:function(){this._showerListeners=this._shower.events.group().on("slideadd",this._onSlideAdd,this).on("slideremove",this._onSlideRemove,this),window.addEventListener("resize",bound(this,"_onResize")),document.addEventListener("keydown",bound(this,"_onKeyDown"))},_clearListeners:function(){this._showerListeners.offAll(),window.removeEventListener("resize",bound(this,"_onResize")),document.removeEventListener("keydown",bound(this,"_onKeyDown"))},_getTransformScale:function(){var denominator=Math.max(document.body.clientWidth/window.innerWidth,document.body.clientHeight/window.innerHeight);return"scale("+1/denominator+")"},_applyTransform:function(transformValue){["WebkitTransform","MozTransform","msTransform","OTransform","transform"].forEach(function(property){document.body.style[property]=transformValue})},_onResize:function(){this.isSlideMode()&&this._applyTransform(this._getTransformScale())},_onSlideAdd:function(e){var slide=e.get("slide");slide.events.on("click",this._onSlideClick,this)},_onSlideRemove:function(e){var slide=e.get("slide");slide.events.off("click",this._onSlideClick,this)},_onSlideClick:function(){this._isSlideMode||this.enterSlideMode()},_onKeyDown:function(e){if(this._shower.isHotkeysEnabled())switch(e.which){case 13:if(e.preventDefault(),!this.isSlideMode()&&e.metaKey){var slideNumber=e.shiftKey?0:this._shower.player.getCurrentSlideIndex();this._shower.player.go(slideNumber),this.enterSlideMode()}else e.shiftKey?this._shower.player.prev():this._shower.player.next();break;case 27:e.preventDefault(),this.exitSlideMode();break;case 116:if(!this.isSlideMode()&&e.shiftKey){e.preventDefault();var slideNumber=this._shower.player.getCurrentSlideIndex();this._shower.player.go(slideNumber),this.enterSlideMode()}break;case 80:!this.isSlideMode()&&e.altKey&&e.metaKey&&(e.preventDefault(),this.enterSlideMode())}}}),provide(Container)}),shower.modules.define("shower.Location",["util.SessionStore","util.bound","util.extend"],function(provide,SessionStore,bound,extend){function Location(shower){this._shower=shower;var sessionStoreKey=shower.options.get("sessionstore_key")+"-shower.Location";this.state=new SessionStore(sessionStoreKey,{isSlideMode:!1}),this._showerListeners=null,this._playerListeners=null,this._documentTitle=document.title,this._popStateProcess=null,this._setupListeners(),this._init()}extend(Location.prototype,{destroy:function(){this._clearListeners()},save:function(){this.state.set("isSlideMode",this._isSlideMode())},_init:function(){var slideInfo,shower=this._shower,currentSlideId=window.location.hash.substr(1),slideModeClass=shower.options.get("mode_full_classname");window.location.hash="",(this.state.get("isSlideMode")||document.body.classList.contains(slideModeClass))&&shower.container.enterSlideMode(),""!==currentSlideId&&(slideInfo=this._getSlideById(currentSlideId),shower.player.go("undefined"!=typeof slideInfo.index?slideInfo.index:0))},_setupListeners:function(){var shower=this._shower;this._playerListeners=shower.player.events.group().on("activate",this._onSlideActivate,this),this._containerListener=shower.container.events.group().on(["slidemodeenter","slidemodeexit"],this._onContainerSlideModeChange,this),window.addEventListener("popstate",bound(this,"_onPopstate"))},_clearListeners:function(){window.removeEventListener("popstate",bound(this,"_onPopstate")),this._playerListeners.offAll(),this._containerListener.offAll()},_getSlideById:function(slideId){for(var slide,index,slides=this._shower.getSlides(),i=slides.length-1;i>=0;i--)if(slides[i].getId()===slideId){slide=slides[i],index=i;break}return{slide:slide,index:index}},_onSlideActivate:function(e){window.location.hash=e.get("slide").getId(),this._setTitle()},_onContainerSlideModeChange:function(){this._setTitle(),this.save()},_isSlideMode:function(){return this._shower.container.isSlideMode()},_onPopstate:function(){var slideInfo,shower=this._shower,slideId=window.location.hash.substr(1),currentSlide=shower.player.getCurrentSlide(),currentSlideNumber=shower.player.getCurrentSlideIndex();this._isSlideMode()&¤tSlideNumber===-1?shower.player.go(0):currentSlideNumber===-1&&""!==window.location.hash&&shower.player.go(0),currentSlide&&slideId!==currentSlide.getId()&&(slideInfo=this._getSlideById(slideId),shower.player.go(slideInfo.index))},_setTitle:function(){var title=document.title,isSlideMode=this._isSlideMode(),currentSlide=this._shower.player.getCurrentSlide();if(isSlideMode&¤tSlide){var slideTitle=currentSlide.getTitle();document.title=slideTitle?slideTitle+" — "+this._documentTitle:this._documentTitle}else this._documentTitle!==title&&(document.title=this._documentTitle)}}),provide(Location)}),shower.modules.define("shower.Player",["Emitter","util.bound","util.extend"],function(provide,EventEmitter,bound,extend){function Player(shower){this.events=new EventEmitter({context:this,parent:shower.events}),this._shower=shower,this._showerListeners=null,this._playerListeners=null,this._currentSlideNumber=-1,this._currentSlide=null,this.init()}extend(Player.prototype,{init:function(){this._showerListeners=this._shower.events.group().on("slideadd",this._onSlideAdd,this).on("slideremove",this._onSlideRemove,this).on("slidemodeenter",this._onSlideModeEnter,this),this._playerListeners=this.events.group().on("prev",this._onPrev,this).on("next",this._onNext,this).on("prevslide",this._onPrev,this).on("nextslide",this._onNext,this),document.addEventListener("keydown",bound(this,"_onKeyDown"))},destroy:function(){this._showerListeners.offAll(),this._playerListeners.offAll(),document.removeEventListener("keydown",bound(this,"_onKeyDown")),this._currentSlide=null,this._currentSlideNumber=null,this._shower=null},next:function(){return this.events.emit("next"),this},prev:function(){return this.events.emit("prev"),this},nextSlide:function(){return this.events.emit("nextslide"),this},prevSlide:function(){return this.events.emit("prevslide"),this},first:function(){return this.go(0),this},last:function(){return this.go(this._shower.getSlidesCount()-1),this},go:function(index){"number"!=typeof index&&(index=this._shower.getSlideIndex(index));var slidesCount=this._shower.getSlidesCount(),currentSlide=this._currentSlide;return index!=this._currentSlideNumber&&index<slidesCount&&index>=0&&(currentSlide&¤tSlide.isActive()&¤tSlide.deactivate(),currentSlide=this._shower.get(index),this._currentSlide=currentSlide,this._currentSlideNumber=index,currentSlide.isActive()||currentSlide.activate(),this.events.emit("activate",{index:index,slide:currentSlide})),this},getCurrentSlide:function(){return this._currentSlide},getCurrentSlideIndex:function(){return this._currentSlideNumber},_onPrev:function(){this._changeSlide(this._currentSlideNumber-1)},_onNext:function(){this._changeSlide(this._currentSlideNumber+1)},_changeSlide:function(index){this.go(index)},_onSlideAdd:function(e){var slide=e.get("slide");slide.events.on("activate",this._onSlideActivate,this)},_onSlideRemove:function(e){var slide=e.get("slide");slide.events.off("activate",this._onSlideActivate,this)},_onSlideActivate:function(e){var slide=e.get("slide"),slideNumber=this._shower.getSlideIndex(slide);this.go(slideNumber)},_onKeyDown:function(e){if(this._shower.isHotkeysEnabled()&&!/^(?:button|input|select|textarea)$/i.test(e.target.tagName)){this.events.emit("keydown",{event:e});var action,allowModifiers=!1;switch(e.which){case 33:case 38:case 37:case 72:case 75:case 80:action=e.shiftKey?"prevSlide":"prev";break;case 34:case 40:case 39:case 76:case 74:case 78:action=e.shiftKey?"nextSlide":"next";break;case 36:allowModifiers=!0,action="first";break;case 35:allowModifiers=!0,action="last";break;case 32:this._shower.container.isSlideMode()&&(action=e.shiftKey?"prev":"next")}!action||!allowModifiers&&(e.altKey||e.ctrlKey||e.metaKey)||(e.preventDefault(),this[action]())}},_onSlideModeEnter:function(){this._currentSlide||this.go(0)}}),provide(Player)}),shower.modules.define("shower.defaultOptions",function(provide,slidesParser){provide({container_selector:".shower",debug_mode:!1,debug_mode_classname:"debug",hotkeys:!0,sessionstore_key:"shower",slides_selector:".shower .slide",mode_full_classname:"full",mode_list_classname:"list",slide_title_element_selector:"H2",slide_active_classname:"active",slide_visited_classname:"visited"})}),shower.modules.define("shower.slidesParser",["Slide"],function(provide,Slide){function parse(containerElement,cssSelector){var slidesElements=containerElement.querySelectorAll(cssSelector);return slidesElements=Array.prototype.slice.call(slidesElements),slidesElements.map(function(slideElement,index){var slide=new Slide(slideElement);return slideElement.id||(slideElement.id=index+1),slide})}provide(parse)}),shower.modules.define("Slide",["shower.defaultOptions","Emitter","Options","slide.Layout","slide.layoutFactory","util.Store","util.extend"],function(provide,defaultOptions,EventEmitter,OptionsManager,Layout,slideLayoutFactory,DataStore,extend){function Slide(content,options,state){this.events=new EventEmitter,this.options=new OptionsManager(options),this.layout=null,this.state=new DataStore({visited:0,index:null},state),this._content=content,this._isVisited=this.state.get("visited")>0,this._isActive=!1,this.init()}extend(Slide.prototype,{init:function(){this.layout="string"==typeof this._content?new slideLayoutFactory.createLayout({content:this._content}):new Layout(this._content,this.options),this.layout.setParent(this), | ||
this._setupListeners()},destroy:function(){this._clearListeners(),this._isActive=null,this.options=null,this.layout.destroy()},activate:function(){this._isActive=!0;var visited=this.state.get("visited");return this.state.set("visited",++visited),this.events.emit("activate",{slide:this}),this},deactivate:function(){return this._isActive=!1,this.events.emit("deactivate",{slide:this}),this},isActive:function(){return this._isActive},isVisited:function(){return this.state.get("visited")>0},getTitle:function(){return this.layout.getTitle()},setTitle:function(title){return this.layout.setTitle(title),this},getId:function(){return this.layout.getElement().id},getContent:function(){return this.layout.getContent()},_setupListeners:function(){this.layoutListeners=this.layout.events.group().on("click",this._onSlideClick,this)},_clearListeners:function(){this.layoutListeners.offAll()},_onSlideClick:function(){this.activate(),this.events.emit("click",{slide:this})}}),provide(Slide)}),shower.modules.define("slide.Layout",["Options","shower.defaultOptions","Emitter","util.bound","util.extend"],function(provide,OptionsManager,defaultOptions,EventEmitter,bound,extend){function Layout(element,options){this.options=new OptionsManager({title_element_selector:defaultOptions.slide_title_element_selector,active_classname:defaultOptions.slide_active_classname,visited_classname:defaultOptions.slide_visited_classname},options),this.events=new EventEmitter,this._element=element,this._parent=null,this._parentElement=null,this.init()}extend(Layout.prototype,{init:function(){var parentNode=this._element.parentNode;parentNode?this._parentElement=parentNode:this.setParentElement(parentNode)},destroy:function(){this.setParent(null)},setParent:function(parent){this._parent!=parent&&(this._clearListeners(),this._parent=parent,this._parent&&this._setupListeners(),this.events.emit("parentchange",{parent:parent}))},getParent:function(){return this._parent},setParentElement:function(parentElement){parentElement!=this._parentElement&&(this._parentElement=parentElement,parentElement.appendChild(this._element),this.events.emit("parentelementchange",{parentElement:parentElement}))},getParentElement:function(){return this._parentElement},getElement:function(){return this._element},setTitle:function(title){var titleElementSelector=this.options.get("title_element_selector"),titleElement=this._element.querySelector(titleElementSelector);titleElement?titleElement.innerHTML=title:(titleElement=document.createElement(titleElementSelector),titleElement.innerHTML=title,this._element.insertBefore(titleElement,this._element.firstChild))},getTitle:function(){var titleElementSelector=this.options.get("title_element_selector"),titleElement=this._element.querySelector(titleElementSelector);return titleElement?titleElement.textContent:null},getData:function(name){var element=this._element;return element.dataset?element.dataset[name]:element.getAttribute("data-"+name)},getContent:function(){return this._element.innerHTML},_setupListeners:function(){this._slideListeners=this._parent.events.group().on("activate",this._onSlideActivate,this).on("deactivate",this._onSlideDeactivate,this),this._element.addEventListener("click",bound(this,"_onSlideClick"),!1)},_clearListeners:function(){this._slideListeners&&this._slideListeners.offAll(),this._element.removeEventListener("click",bound(this,"_onSlideClick"))},_onSlideActivate:function(){this._element.classList.add(this.options.get("active_classname"))},_onSlideDeactivate:function(){var elementClassList=this._element.classList;elementClassList.remove(this.options.get("active_classname")),elementClassList.add(this.options.get("visited_classname"))},_onSlideClick:function(){this.events.emit("click")}}),provide(Layout)}),shower.modules.define("slide.layoutFactory",["slide.Layout","util.extend"],function(provide,SlideLayout,extend){var layoutFactory={};extend(layoutFactory,{createLayout:function(parameters){parameters=parameters||{};var element=layoutFactory._createElement(extend({content:"",contentType:"slide"},parameters));return new SlideLayout(element)},_createElement:function(options){var element=document.createElement("section");return element.innerHTML=options.content,element.classList.add(options.contentType),element}}),provide(layoutFactory)}),shower.modules.define("util.SessionStore",["util.Store","util.inherit"],function(provide,Store,inherit){function SessionStore(storeKey,initData){this._storageKey=storeKey;var data=this._loadFromStorage()||initData;SessionStore.super.constructor.call(this,data)}inherit(SessionStore,Store,{set:function(key,value){SessionStore.super.set.call(this,key,value),this._saveToStorage()},unset:function(key){SessionStore.super.unset.call(this,key),this._saveToStorage()},_saveToStorage:function(){window.sessionStorage.setItem(this._storageKey,JSON.stringify(this.getAll()))},_loadFromStorage:function(){var store=window.sessionStorage.getItem(this._storageKey);return store&&JSON.parse(store)}}),provide(SessionStore)}),shower.modules.define("util.Store",["util.extend"],function(provide,extend){function Store(initData){this._data=initData||{};for(var i=1,k=arguments.length;i<k;i++)extend(this._data,arguments[i]||{})}extend(Store.prototype,{get:function(key,defaultValue){return this._data.hasOwnProperty(key)?this._data[key]:defaultValue},getAll:function(){return extend({},this._data)},set:function(key,value){return this._data[key]=value,this},unset:function(key){if(!this._data.hasOwnProperty(key))throw new Error(key+" not found.");return delete this._data[key],this},destroy:function(){this._data={}}}),provide(Store)}),shower.modules.define("util.bound",function(provide){function bound(ctx,fn){return ctx["__bound_"+fn]||(ctx["__bound_"+fn]=ctx[fn].bind(ctx))}provide(bound)}),shower.modules.define("util.extend",function(provide){function extend(target){if(!target)throw new Error("util.extend: Target not found");return"undefined"==typeof Object.assign?polyfill.apply(null,arguments):Object.assign.apply(null,arguments)}function polyfill(target){for(var i=1,l=arguments.length;i<l;i++){var obj=arguments[i];for(var property in obj)obj.hasOwnProperty(property)&&(target[property]=obj[property])}return target}provide(extend)}),shower.modules.define("util.inherit",["util.extend"],function(provide,extend){var inherit=function(childClass,parentClass,override){return childClass.prototype=Object.create(parentClass.prototype),childClass.prototype.constructor=childClass,childClass.super=parentClass.prototype,childClass.super.constructor=parentClass,override&&extend(childClass.prototype,override),childClass.prototype};provide(inherit)}),shower.modules.define("shower-next",["shower","Emitter","util.extend"],function(provide,globalShower,EventEmitter,extend){function Next(shower,options){options=options||{},this.events=new EventEmitter({context:this}),this._shower=shower,this._elementsSelector=options.selector||DEFAULT_SELECTOR,this._elements=[],this._innerComplete=0,this._setupListeners(),this._shower.player.getCurrentSlideIndex()!=-1&&this._onSlideActivate()}var TIMER_PLUGIN_NAME="shower-timer",DEFAULT_SELECTOR=".next";extend(Next.prototype,{destroy:function(){this._clearListeners(),this._elements=null,this._elementsSelector=null,this._innerComplete=null,this._shower=null},next:function(){if(!this._elements.length)throw new Error("Inner nav elements not found.");return this._innerComplete++,this._go(),this.events.emit("next"),this},prev:function(){if(!this._elements.length)throw new Error("Inner nav elements not found.");return this._innerComplete--,this._go(),this.events.emit("prev"),this},getLength:function(){return this._elements=this._getElements(),this._elements.length},getComplete:function(){return this._innerComplete},_setupListeners:function(){var shower=this._shower;this._showerListeners=shower.events.group().on("destroy",this.destroy,this),this._playerListeners=shower.player.events.group().on("activate",this._onSlideActivate,this).on("next",this._onNext,this).on("prev",this._onPrev,this);var timerPlugin=globalShower.plugins.get(TIMER_PLUGIN_NAME,shower);timerPlugin?this._setupTimerPluginListener(timerPlugin):this._pluginsListeners=globalShower.plugins.events.group().on("add",function(e){e.get("name")===TIMER_PLUGIN_NAME&&(this._setupTimerPluginListener(),this._pluginsListeners.offAll())},this)},_setupTimerPluginListener:function(plugin){if(!plugin){globalShower.plugins.get(TIMER_PLUGIN_NAME,this._shower)}plugin.events.on("next",this._onNext,this,100)},_clearListeners:function(){this._showerListeners.offAll(),this._playerListeners.offAll(),this._pluginsListeners&&this._pluginsListeners.offAll()},_getElements:function(){var slideLayout=this._shower.player.getCurrentSlide().layout,slideElement=slideLayout.getElement();return Array.prototype.slice.call(slideElement.querySelectorAll(this._elementsSelector))},_onNext:function(e){var elementsLength=this._elements.length,isSlideMode=this._shower.container.isSlideMode();isSlideMode&&elementsLength&&this._innerComplete<elementsLength&&(e.preventDefault(),this.next())},_onPrev:function(e){var elementsLength=this._elements.length,completed=(this._shower.container.isSlideMode(),this._innerComplete);elementsLength&&completed<elementsLength&&completed>0&&(e.preventDefault(),this.prev())},_go:function(){for(var i=0,k=this._elements.length;i<k;i++){var element=this._elements[i];i<this._innerComplete?element.classList.add("active"):element.classList.remove("active")}},_onSlideActivate:function(){this._elements=this._getElements(),this._innerComplete=this._getInnerComplete()},_getInnerComplete:function(){return this._elements.filter(function(element){return element.classList.contains("active")}).length}}),provide(Next)}),shower.modules.require(["shower"],function(sh){sh.plugins.add("shower-next")}),shower.modules.define("shower-progress",["util.extend"],function(provide,extend){function Progress(shower,options){options=options||{},this._shower=shower,this._playerListeners=null,this._element=null,this._elementSelector=options.selector||".progress";var showerContainerElement=this._shower.container.getElement();this._element=showerContainerElement.querySelector(this._elementSelector),this._element&&(this._setupListeners(),this._element.setAttribute("role","progressbar"),this._element.setAttribute("aria-valuemin","0"),this._element.setAttribute("aria-valuemax","100"),this.updateProgress())}extend(Progress.prototype,{destroy:function(){this._clearListeners(),this._shower=null},updateProgress:function(){var slidesCount=this._shower.getSlidesCount(),currentSlideNumber=this._shower.player.getCurrentSlideIndex(),currentProgressValue=100/(slidesCount-1)*currentSlideNumber;this._element&&(this._element.style.width=currentProgressValue.toFixed(2)+"%",this._element.setAttribute("aria-valuenow",currentProgressValue.toFixed()),this._element.setAttribute("aria-valuetext","Slideshow Progress: "+currentProgressValue.toFixed()+"%"))},_setupListeners:function(){var shower=this._shower;this._showerListeners=shower.events.group().on("destroy",this.destroy,this),this._playerListeners=shower.player.events.group().on("activate",this._onSlideChange,this)},_clearListeners:function(){this._showerListeners&&this._showerListeners.offAll(),this._playerListeners&&this._playerListeners.offAll()},_onSlideChange:function(){this.updateProgress()}}),provide(Progress)}),shower.modules.require(["shower"],function(sh){sh.plugins.add("shower-progress")}),shower.modules.define("shower-timer",["shower","Emitter","util.extend"],function(provide,showerGlobal,EventEmitter,extend){function Timer(shower){this.events=new EventEmitter,this._shower=shower,this._timer=null,this._showerListeners=null,this._playerListeners=null,this._pluginsListeners=null,this._setupListeners()}var PLUGIN_NAME_NEXT="shower-next";extend(Timer.prototype,{destroy:function(){this._clearTimer(),this._clearListeners(),this._shower=null},run:function(timing){this._initTimer(timing)},stop:function(){this._clearTimer()},_setupListeners:function(){var shower=this._shower;this.events.on("next",this._onNext,this),this._showerListeners=shower.events.group().on("destroy",this.destroy,this),this._playerListeners=shower.player.events.group().on("keydown",this._clearTimer,this).on("activate",this._onSlideActivate,this),this._nextPlugin=showerGlobal.plugins.get(PLUGIN_NAME_NEXT,shower),this._nextPlugin||(this._pluginsListeners=shower.plugins.events.group().on("pluginadd",function(e){e.get("name")===PLUGIN_NAME_NEXT&&(this._nextPlugin=shower.plugins.get(PLUGIN_NAME_NEXT),this._pluginsListeners.offAll())},this)),shower.player.getCurrentSlideIndex()!=-1&&this._onSlideActivate()},_clearListeners:function(){this._showerListeners.offAll(),this._playerListeners.offAll()},_onSlideActivate:function(){this._clearTimer();var currentSlide=this._shower.player.getCurrentSlide();if(this._shower.container.isSlideMode()&¤tSlide.state.get("visited")<2){var timing=currentSlide.layout.getData("timing");timing&&/^(\d{1,2}:)?\d{1,3}$/.test(timing)&&(timing.indexOf(":")!==-1?(timing=timing.split(":"),timing=1e3*(60*parseInt(timing[0],10)+parseInt(timing[1],10))):timing=1e3*parseInt(timing,10),0!==timing&&this._initTimer(timing))}},_initTimer:function(timing){var events=this.events,nextPlugin=(this._shower,this._nextPlugin);nextPlugin&&nextPlugin.getLength()&&nextPlugin.getLength()!=nextPlugin.getComplete()&&(timing/=nextPlugin.getLength()+1),this._timer=setInterval(function(){events.emit("next")},timing)},_clearTimer:function(){this._timer&&(clearInterval(this._timer),this._timer=null)},_onNext:function(){this._clearTimer(),this._shower.player.next()}}),provide(Timer)}),shower.modules.require(["shower"],function(sh){sh.plugins.add("shower-timer")}),shower.modules.define("shower-touch",["util.extend"],function(provide,extend){function Touch(shower,options){options=options||{},this._shower=shower,this._setupListeners()}var INTERACTIVE_ELEMENTS=["VIDEO","AUDIO","A","BUTTON","INPUT"];extend(Touch.prototype,{destroy:function(){this._clearListeners(),this._shower=null},_setupListeners:function(){var shower=this._shower;this._showerListeners=shower.events.group().on("add",this._onSlideAdd,this),this._bindedTouchStart=this._onTouchStart.bind(this),this._bindedTouchMove=this._onTouchMove.bind(this),this._shower.getSlides().forEach(this._addTouchStartListener,this),document.addEventListener("touchmove",this._bindedTouchMove,!0)},_clearListeners:function(){this._showerListeners.offAll(),this._shower.getSlides().forEach(this._removeTouchStartListener,this),document.removeEventListener("touchmove",this._bindedTouchMove,!1)},_onSlideAdd:function(event){var slide=event.get("slide");this._addTouchStartListener(slide)},_addTouchStartListener:function(slide){var element=slide.layout.getElement();element.addEventListener("touchstart",this._bindedTouchStart,!1)},_removeTouchStartListener:function(slide){var element=slide.layout.getElement();element.removeEventListener("touchstart",this._bindedTouchStart,!1)},_onTouchStart:function(e){var x,shower=this._shower,isSlideMode=shower.container.isSlideMode(),element=e.target,slide=this._getSlideByElement(e.currentTarget);slide&&(isSlideMode&&!this._isInteractiveElement(element)&&(e.preventDefault(),x=e.touches[0].pageX,x>window.innerWidth/2?shower.player.next():shower.player.prev()),isSlideMode||slide.activate())},_onTouchMove:function(e){this._shower.container.isSlideMode()&&e.preventDefault()},_getSlideByElement:function(element){for(var slides=this._shower.getSlides(),result=null,i=0,k=slides.length;i<k;i++)if(element.id===slides[i].getId()){result=this._shower.get(i);break}return result},_isInteractiveElement:function(element){return INTERACTIVE_ELEMENTS.some(function(elName){return elName===element.tagName})}}),provide(Touch)}),shower.modules.require(["shower"],function(sh){sh.plugins.add("shower-touch")}); |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
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
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
54560
25
1
22
1