swup 2.0.16 → 2.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +19 -0
- package/cypress.config.js +2 -1
- package/dist/swup.js +394 -306
- package/dist/swup.min.js +1 -1
- package/lib/helpers/cleanupAnimationClasses.js +18 -0
- package/lib/helpers/createHistoryRecord.js +1 -1
- package/lib/helpers/getDataFromHtml.js +12 -19
- package/lib/helpers/index.js +17 -2
- package/lib/helpers/markSwupElements.js +6 -10
- package/lib/helpers/normalizeUrl.js +17 -0
- package/lib/helpers/transitionEnd.js +4 -15
- package/lib/helpers/transitionProperty.js +14 -0
- package/lib/index.js +13 -5
- package/lib/modules/Cache.js +7 -1
- package/lib/modules/getAnimationPromises.js +17 -1
- package/lib/modules/getPageData.js +1 -1
- package/lib/modules/loadPage.js +10 -5
- package/lib/modules/renderPage.js +9 -16
- package/package.json +10 -5
package/dist/swup.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function e(t,n){if(typeof exports==="object"&&typeof module==="object")module.exports=n();else if(typeof define==="function"&&define.amd)define([],n);else if(typeof exports==="object")exports["Swup"]=n();else t["Swup"]=n()})(window,function(){return function(e){var t={};function n(r){if(t[r]){return t[r].exports}var i=t[r]={i:r,l:false,exports:{}};e[r].call(i.exports,i,i.exports,n);i.l=true;return i.exports}n.m=e;n.c=t;n.d=function(e,t,r){if(!n.o(e,t)){Object.defineProperty(e,t,{enumerable:true,get:r})}};n.r=function(e){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})};n.t=function(e,t){if(t&1)e=n(e);if(t&8)return e;if(t&4&&typeof e==="object"&&e&&e.__esModule)return e;var r=Object.create(null);n.r(r);Object.defineProperty(r,"default",{enumerable:true,value:e});if(t&2&&typeof e!="string")for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r};n.n=function(e){var t=e&&e.__esModule?function t(){return e["default"]}:function t(){return e};n.d(t,"a",t);return t};n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};n.p="";return n(n.s=2)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=t.query=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:document;if(typeof t!=="string"){return t}return n.querySelector(t)};var i=t.queryAll=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:document;if(typeof t!=="string"){return t}return Array.prototype.slice.call(n.querySelectorAll(t))};var a=t.escapeCssIdentifier=function e(t){if(window.CSS&&window.CSS.escape){return CSS.escape(t)}else{return t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Link=t.markSwupElements=t.getCurrentUrl=t.transitionEnd=t.fetch=t.getDataFromHtml=t.createHistoryRecord=t.classify=undefined;var r=n(7);var i=w(r);var a=n(8);var o=w(a);var s=n(9);var u=w(s);var l=n(10);var c=w(l);var f=n(11);var d=w(f);var h=n(12);var p=w(h);var v=n(13);var g=w(v);var m=n(14);var y=w(m);function w(e){return e&&e.__esModule?e:{default:e}}var b=t.classify=i.default;var E=t.createHistoryRecord=o.default;var P=t.getDataFromHtml=u.default;var _=t.fetch=c.default;var k=t.transitionEnd=d.default;var S=t.getCurrentUrl=p.default;var O=t.markSwupElements=g.default;var j=t.Link=y.default},function(e,t,n){"use strict";var r=n(3);var i=a(r);function a(e){return e&&e.__esModule?e:{default:e}}e.exports=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();var a=n(4);var o=L(a);var s=n(5);var u=L(s);var l=n(6);var c=L(l);var f=n(15);var d=L(f);var h=n(16);var p=L(h);var v=n(17);var g=L(v);var m=n(18);var y=L(m);var w=n(19);var b=L(w);var E=n(20);var P=L(E);var _=n(21);var k=L(_);var S=n(22);var O=L(S);var j=n(23);var H=n(0);var M=n(1);function L(e){return e&&e.__esModule?e:{default:e}}function T(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var A=function(){function e(t){T(this,e);var n={animateHistoryBrowsing:false,animationSelector:'[class*="transition-"]',linkSelector:'a[href^="'+window.location.origin+'"]:not([data-no-swup]), a[href^="/"]:not([data-no-swup]), a[href^="#"]:not([data-no-swup])',cache:true,containers:["#swup"],requestHeaders:{"X-Requested-With":"swup",Accept:"text/html, application/xhtml+xml"},plugins:[],skipPopStateHandling:function e(t){return!(t.state&&t.state.source==="swup")}};var i=r({},n,t);this._handlers={animationInDone:[],animationInStart:[],animationOutDone:[],animationOutStart:[],animationSkipped:[],clickLink:[],contentReplaced:[],disabled:[],enabled:[],openPageInNewTab:[],pageLoaded:[],pageRetrievedFromCache:[],pageView:[],popState:[],samePage:[],samePageWithHash:[],serverError:[],transitionStart:[],transitionEnd:[],willReplaceContent:[]};this.scrollToElement=null;this.preloadPromise=null;this.options=i;this.plugins=[];this.transition={};this.delegatedListeners={};this.boundPopStateHandler=this.popStateHandler.bind(this);this.cache=new u.default;this.cache.swup=this;this.loadPage=c.default;this.renderPage=d.default;this.triggerEvent=p.default;this.on=g.default;this.off=y.default;this.updateTransition=b.default;this.getAnimationPromises=k.default;this.getPageData=O.default;this.getAnchorElement=P.default;this.log=function(){};this.use=j.use;this.unuse=j.unuse;this.findPlugin=j.findPlugin;this.enable()}i(e,[{key:"enable",value:function e(){var t=this;if(typeof Promise==="undefined"){console.warn("Promise is not supported");return}this.delegatedListeners.click=(0,o.default)(document,this.options.linkSelector,"click",this.linkClickHandler.bind(this));window.addEventListener("popstate",this.boundPopStateHandler);var n=(0,M.getDataFromHtml)(document.documentElement.outerHTML,this.options.containers);n.url=n.responseURL=(0,M.getCurrentUrl)();if(this.options.cache){this.cache.cacheUrl(n)}(0,M.markSwupElements)(document.documentElement,this.options.containers);this.options.plugins.forEach(function(e){t.use(e)});window.history.replaceState(Object.assign({},window.history.state,{url:window.location.href,random:Math.random(),source:"swup"}),document.title,window.location.href);this.triggerEvent("enabled");document.documentElement.classList.add("swup-enabled");this.triggerEvent("pageView")}},{key:"destroy",value:function e(){var t=this;this.delegatedListeners.click.destroy();window.removeEventListener("popstate",this.boundPopStateHandler);this.cache.empty();this.options.plugins.forEach(function(e){t.unuse(e)});(0,H.queryAll)("[data-swup]").forEach(function(e){e.removeAttribute("data-swup")});this.off();this.triggerEvent("disabled");document.documentElement.classList.remove("swup-enabled")}},{key:"linkClickHandler",value:function e(t){if(!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&!t.altKey){if(t.button===0){this.triggerEvent("clickLink",t);t.preventDefault();var n=new M.Link(t.delegateTarget);if(n.getAddress()==(0,M.getCurrentUrl)()||n.getAddress()==""){if(n.getHash()!=""){this.triggerEvent("samePageWithHash",t);var r=(0,P.default)(n.getHash());if(r!=null){history.replaceState({url:n.getAddress()+n.getHash(),random:Math.random(),source:"swup"},document.title,n.getAddress()+n.getHash())}else{console.warn("Element for offset not found ("+n.getHash()+")")}}else{this.triggerEvent("samePage",t)}}else{if(n.getHash()!=""){this.scrollToElement=n.getHash()}var i=t.delegateTarget.getAttribute("data-swup-transition");this.loadPage({url:n.getAddress(),customTransition:i},false)}}}else{this.triggerEvent("openPageInNewTab",t)}}},{key:"popStateHandler",value:function e(t){if(this.options.skipPopStateHandling(t))return;var n=new M.Link(t.state?t.state.url:window.location.pathname);if(n.getHash()!==""){this.scrollToElement=n.getHash()}else{t.preventDefault()}this.triggerEvent("popState",t);this.loadPage({url:n.getAddress()},t)}}]);return e}();t.default=A},function(e,t,n){"use strict";n.r(t);const r=new WeakMap;function i(e,t,n,i){var a,o;if(!e&&!r.has(t)){return false}const s=(a=r.get(t))!==null&&a!==void 0?a:new WeakMap;r.set(t,s);if(!e&&!r.has(t)){return false}const u=(o=s.get(n))!==null&&o!==void 0?o:new Set;s.set(n,u);const l=u.has(i);if(e){u.add(i)}else{u.delete(i)}return l&&e}function a(e){return typeof e.addEventListener==="function"}function o(e,t){let n=e.target;if(n instanceof Text){n=n.parentElement}if(n instanceof Element&&e.currentTarget instanceof Element){const r=n.closest(t);if(r&&e.currentTarget.contains(r)){return r}}}function s(e,t,n,r,u){if(typeof e==="string"){e=document.querySelectorAll(e)}if(!a(e)){const i=Array.prototype.map.call(e,e=>s(e,t,n,r,u));return{destroy(){for(const e of i){e.destroy()}}}}const l=e instanceof Document?e.documentElement:e;const c=Boolean(typeof u==="object"?u.capture:u);const f=e=>{const n=o(e,t);if(n){e.delegateTarget=n;r.call(l,e)}};if(typeof u==="object"){delete u.once}const d=JSON.stringify({selector:t,type:n,capture:c});const h=i(true,l,r,d);const p={destroy(){l.removeEventListener(n,f,u);i(false,l,r,d)}};if(!h){l.addEventListener(n,f,u)}return p}t["default"]=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();function i(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var a=t.Cache=function(){function e(){i(this,e);this.pages={};this.last=null}r(e,[{key:"cacheUrl",value:function e(t){if(t.url in this.pages===false){this.pages[t.url]=t}this.last=this.pages[t.url];this.swup.log("Cache ("+Object.keys(this.pages).length+")",this.pages)}},{key:"getPage",value:function e(t){return this.pages[t]}},{key:"getCurrentPage",value:function e(){return this.getPage(window.location.pathname+window.location.search)}},{key:"exists",value:function e(t){return t in this.pages}},{key:"empty",value:function e(){this.pages={};this.last=null;this.swup.log("Cache cleared")}},{key:"remove",value:function e(t){delete this.pages[t]}}]);return e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=n(1);var a=function e(t,n){var a=this;var o=[],s=void 0;var u=function e(){a.triggerEvent("animationOutStart");document.documentElement.classList.add("is-changing");document.documentElement.classList.add("is-leaving");document.documentElement.classList.add("is-animating");if(n){document.documentElement.classList.add("is-popstate")}document.documentElement.classList.add("to-"+(0,i.classify)(t.url));o=a.getAnimationPromises("out");Promise.all(o).then(function(){a.triggerEvent("animationOutDone")});if(!n){var r=void 0;if(a.scrollToElement!=null){r=t.url+a.scrollToElement}else{r=t.url}(0,i.createHistoryRecord)(r)}};this.triggerEvent("transitionStart",n);if(t.customTransition!=null){this.updateTransition(window.location.pathname,t.url,t.customTransition);document.documentElement.classList.add("to-"+(0,i.classify)(t.customTransition))}else{this.updateTransition(window.location.pathname,t.url)}if(!n||this.options.animateHistoryBrowsing){u()}else{this.triggerEvent("animationSkipped")}if(this.cache.exists(t.url)){s=new Promise(function(e){e()});this.triggerEvent("pageRetrievedFromCache")}else{if(!this.preloadPromise||this.preloadPromise.route!=t.url){s=new Promise(function(e,n){(0,i.fetch)(r({},t,{headers:a.options.requestHeaders}),function(r){if(r.status===500){a.triggerEvent("serverError");n(t.url);return}else{var i=a.getPageData(r);if(i!=null){i.url=t.url}else{n(t.url);return}a.cache.cacheUrl(i);a.triggerEvent("pageLoaded")}e()})})}else{s=this.preloadPromise}}Promise.all(o.concat([s])).then(function(){a.renderPage(a.cache.getPage(t.url),n);a.preloadPromise=null}).catch(function(e){a.options.skipPopStateHandling=function(){window.location=e;return true};window.history.go(-1)})};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t){var n=t.toString().toLowerCase().replace(/\s+/g,"-").replace(/\//g,"-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,"");if(n[0]==="/")n=n.splice(1);if(n==="")n="homepage";return n};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t){window.history.pushState({url:t||window.location.href.split(window.location.hostname)[1],random:Math.random(),source:"swup"},document.getElementsByTagName("title")[0].innerText,t||window.location.href.split(window.location.hostname)[1])};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol==="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var i=n(0);var a=function e(t,n){var a=document.createElement("html");a.innerHTML=t;var o=[];var s=function e(t){if(a.querySelector(n[t])==null){return{v:null}}else{(0,i.queryAll)(n[t]).forEach(function(e,r){(0,i.queryAll)(n[t],a)[r].setAttribute("data-swup",o.length);o.push((0,i.queryAll)(n[t],a)[r].outerHTML)})}};for(var u=0;u<n.length;u++){var l=s(u);if((typeof l==="undefined"?"undefined":r(l))==="object")return l.v}var c={title:a.querySelector("title").innerText,pageClass:a.querySelector("body").className,originalContent:t,blocks:o};a.innerHTML="";a=null;return c};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var i={url:window.location.pathname+window.location.search,method:"GET",data:null,headers:{}};var a=r({},i,t);var o=new XMLHttpRequest;o.onreadystatechange=function(){if(o.readyState===4){if(o.status!==500){n(o)}else{n(o)}}};o.open(a.method,a.url,true);Object.keys(a.headers).forEach(function(e){o.setRequestHeader(e,a.headers[e])});o.send(a.data);return o};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(){var t=document.createElement("div");var n={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var r in n){if(t.style[r]!==undefined){return n[r]}}return false};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(){return window.location.pathname+window.location.search};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(0);var i=function e(t,n){var i=0;var a=function e(a){if(t.querySelector(n[a])==null){console.warn("Element "+n[a]+" is not in current page.")}else{(0,r.queryAll)(n[a]).forEach(function(e,o){(0,r.queryAll)(n[a],t)[o].setAttribute("data-swup",i);i++})}};for(var o=0;o<n.length;o++){a(o)}};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();function i(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var a=function(){function e(t){i(this,e);if(t instanceof Element||t instanceof SVGElement){this.link=t}else{this.link=document.createElement("a");this.link.href=t}}r(e,[{key:"getPath",value:function e(){var t=this.link.pathname;if(t[0]!=="/"){t="/"+t}return t}},{key:"getAddress",value:function e(){var t=this.link.pathname+this.link.search;if(this.link.getAttribute("xlink:href")){t=this.link.getAttribute("xlink:href")}if(t[0]!=="/"){t="/"+t}return t}},{key:"getHash",value:function e(){return this.link.hash}}]);return e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=n(0);var a=n(1);var o=function e(t,n){var i=this;document.documentElement.classList.remove("is-leaving");var o=new a.Link(t.responseURL);if(window.location.pathname!==o.getPath()){window.history.replaceState({url:o.getPath(),random:Math.random(),source:"swup"},document.title,o.getPath());this.cache.cacheUrl(r({},t,{url:o.getPath()}))}if(!n||this.options.animateHistoryBrowsing){document.documentElement.classList.add("is-rendering")}this.triggerEvent("willReplaceContent",n);for(var s=0;s<t.blocks.length;s++){document.body.querySelector('[data-swup="'+s+'"]').outerHTML=t.blocks[s]}document.title=t.title;this.triggerEvent("contentReplaced",n);this.triggerEvent("pageView",n);if(!this.options.cache){this.cache.empty()}setTimeout(function(){if(!n||i.options.animateHistoryBrowsing){i.triggerEvent("animationInStart");document.documentElement.classList.remove("is-animating")}},10);if(!n||this.options.animateHistoryBrowsing){var u=this.getAnimationPromises("in");Promise.all(u).then(function(){i.triggerEvent("animationInDone");i.triggerEvent("transitionEnd",n);document.documentElement.className.split(" ").forEach(function(e){if(new RegExp("^to-").test(e)||e==="is-changing"||e==="is-rendering"||e==="is-popstate"){document.documentElement.classList.remove(e)}})})}else{this.triggerEvent("transitionEnd",n)}this.scrollToElement=null};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){this._handlers[t].forEach(function(e){try{e(n)}catch(e){console.error(e)}});var r=new CustomEvent("swup:"+t,{detail:t});document.dispatchEvent(r)};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){if(this._handlers[t]){this._handlers[t].push(n)}else{console.warn("Unsupported event "+t+".")}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){var r=this;if(t!=null){if(n!=null){if(this._handlers[t]&&this._handlers[t].filter(function(e){return e===n}).length){var i=this._handlers[t].filter(function(e){return e===n})[0];var a=this._handlers[t].indexOf(i);if(a>-1){this._handlers[t].splice(a,1)}}else{console.warn("Handler for event '"+t+"' no found.")}}else{this._handlers[t]=[]}}else{Object.keys(this._handlers).forEach(function(e){r._handlers[e]=[]})}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n,r){this.transition={from:t,to:n,custom:r}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(0);var i=function e(t){if(!t){return null}if(t.charAt(0)==="#"){t=t.substring(1)}t=decodeURIComponent(t);t=(0,r.escapeCssIdentifier)(t);return(0,r.query)("#"+t)||(0,r.query)("a[name='"+t+"']")};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(0);var i=n(1);var a=function e(){var t=[];var n=(0,r.queryAll)(this.options.animationSelector);n.forEach(function(e){var n=new Promise(function(t){e.addEventListener((0,i.transitionEnd)(),function(n){if(e==n.target){t()}})});t.push(n)});return t};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(1);var i=function e(t){var n=t.responseText;var i=(0,r.getDataFromHtml)(n,this.options.containers);if(i){i.responseURL=t.responseURL?t.responseURL:window.location.href}else{console.warn("Received page is invalid.");return null}return i};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=t.use=function e(t){if(!t.isSwupPlugin){console.warn("Not swup plugin instance "+t+".");return}this.plugins.push(t);t.swup=this;if(typeof t._beforeMount==="function"){t._beforeMount()}t.mount();return this.plugins};var i=t.unuse=function e(t){var n=void 0;if(typeof t==="string"){n=this.plugins.find(function(e){return t===e.name})}else{n=t}if(!n){console.warn("No such plugin.");return}n.unmount();if(typeof n._afterUnmount==="function"){n._afterUnmount()}var r=this.plugins.indexOf(n);this.plugins.splice(r,1);return this.plugins};var a=t.findPlugin=function e(t){return this.plugins.find(function(e){return t===e.name})}}])});
|
|
1
|
+
(function e(t,n){if(typeof exports==="object"&&typeof module==="object")module.exports=n();else if(typeof define==="function"&&define.amd)define([],n);else if(typeof exports==="object")exports["Swup"]=n();else t["Swup"]=n()})(window,function(){return function(e){var t={};function n(r){if(t[r]){return t[r].exports}var i=t[r]={i:r,l:false,exports:{}};e[r].call(i.exports,i,i.exports,n);i.l=true;return i.exports}n.m=e;n.c=t;n.d=function(e,t,r){if(!n.o(e,t)){Object.defineProperty(e,t,{enumerable:true,get:r})}};n.r=function(e){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})};n.t=function(e,t){if(t&1)e=n(e);if(t&8)return e;if(t&4&&typeof e==="object"&&e&&e.__esModule)return e;var r=Object.create(null);n.r(r);Object.defineProperty(r,"default",{enumerable:true,value:e});if(t&2&&typeof e!="string")for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r};n.n=function(e){var t=e&&e.__esModule?function t(){return e["default"]}:function t(){return e};n.d(t,"a",t);return t};n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};n.p="";return n(n.s=3)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.cleanupAnimationClasses=t.Link=t.markSwupElements=t.normalizeUrl=t.getCurrentUrl=t.transitionProperty=t.transitionEnd=t.fetch=t.getDataFromHtml=t.createHistoryRecord=t.classify=undefined;var r=n(7);var i=O(r);var a=n(8);var o=O(a);var s=n(9);var u=O(s);var l=n(10);var c=O(l);var f=n(11);var d=O(f);var h=n(12);var p=O(h);var v=n(13);var g=O(v);var m=n(14);var y=O(m);var w=n(15);var b=O(w);var E=n(2);var P=O(E);var _=n(16);var k=O(_);function O(e){return e&&e.__esModule?e:{default:e}}var S=t.classify=i.default;var j=t.createHistoryRecord=o.default;var M=t.getDataFromHtml=u.default;var H=t.fetch=c.default;var A=t.transitionEnd=d.default;var C=t.transitionProperty=p.default;var L=t.getCurrentUrl=g.default;var T=t.normalizeUrl=y.default;var q=t.markSwupElements=b.default;var x=t.Link=P.default;var U=t.cleanupAnimationClasses=k.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=t.query=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:document;if(typeof t!=="string"){return t}return n.querySelector(t)};var i=t.queryAll=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:document;if(typeof t!=="string"){return t}return Array.prototype.slice.call(n.querySelectorAll(t))};var a=t.escapeCssIdentifier=function e(t){if(window.CSS&&window.CSS.escape){return CSS.escape(t)}else{return t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();function i(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var a=function(){function e(t){i(this,e);if(t instanceof Element||t instanceof SVGElement){this.link=t}else{this.link=document.createElement("a");this.link.href=t}}r(e,[{key:"getPath",value:function e(){var t=this.link.pathname;if(t[0]!=="/"){t="/"+t}return t}},{key:"getAddress",value:function e(){var t=this.link.pathname+this.link.search;if(this.link.getAttribute("xlink:href")){t=this.link.getAttribute("xlink:href")}if(t[0]!=="/"){t="/"+t}return t}},{key:"getHash",value:function e(){return this.link.hash}}]);return e}();t.default=a},function(e,t,n){"use strict";var r=n(4);var i=a(r);function a(e){return e&&e.__esModule?e:{default:e}}e.exports=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();var a=n(5);var o=A(a);var s=n(6);var u=A(s);var l=n(17);var c=A(l);var f=n(18);var d=A(f);var h=n(19);var p=A(h);var v=n(20);var g=A(v);var m=n(21);var y=A(m);var w=n(22);var b=A(w);var E=n(23);var P=A(E);var _=n(24);var k=A(_);var O=n(25);var S=A(O);var j=n(26);var M=n(1);var H=n(0);function A(e){return e&&e.__esModule?e:{default:e}}function C(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var L=function(){function e(t){C(this,e);var n={animateHistoryBrowsing:false,animationSelector:'[class*="transition-"]',linkSelector:'a[href^="'+window.location.origin+'"]:not([data-no-swup]), a[href^="/"]:not([data-no-swup]), a[href^="#"]:not([data-no-swup])',cache:true,containers:["#swup"],requestHeaders:{"X-Requested-With":"swup",Accept:"text/html, application/xhtml+xml"},plugins:[],skipPopStateHandling:function e(t){return!(t.state&&t.state.source==="swup")}};var i=r({},n,t);this._handlers={animationInDone:[],animationInStart:[],animationOutDone:[],animationOutStart:[],animationSkipped:[],clickLink:[],contentReplaced:[],disabled:[],enabled:[],openPageInNewTab:[],pageLoaded:[],pageRetrievedFromCache:[],pageView:[],popState:[],samePage:[],samePageWithHash:[],serverError:[],transitionStart:[],transitionEnd:[],willReplaceContent:[]};this.scrollToElement=null;this.preloadPromise=null;this.options=i;this.plugins=[];this.transition={};this.delegatedListeners={};this.boundPopStateHandler=this.popStateHandler.bind(this);this.cache=new u.default;this.cache.swup=this;this.loadPage=c.default;this.renderPage=d.default;this.triggerEvent=p.default;this.on=g.default;this.off=y.default;this.updateTransition=b.default;this.getAnimationPromises=k.default;this.getPageData=S.default;this.getAnchorElement=P.default;this.log=function(){};this.use=j.use;this.unuse=j.unuse;this.findPlugin=j.findPlugin;this.getCurrentUrl=H.getCurrentUrl;this.cleanupAnimationClasses=H.cleanupAnimationClasses;this.enable()}i(e,[{key:"enable",value:function e(){var t=this;if(typeof Promise==="undefined"){console.warn("Promise is not supported");return}this.delegatedListeners.click=(0,o.default)(document,this.options.linkSelector,"click",this.linkClickHandler.bind(this));window.addEventListener("popstate",this.boundPopStateHandler);if(this.options.cache){}(0,H.markSwupElements)(document.documentElement,this.options.containers);this.options.plugins.forEach(function(e){t.use(e)});window.history.replaceState(Object.assign({},window.history.state,{url:window.location.href,random:Math.random(),source:"swup"}),document.title,window.location.href);this.triggerEvent("enabled");document.documentElement.classList.add("swup-enabled");this.triggerEvent("pageView")}},{key:"destroy",value:function e(){var t=this;this.delegatedListeners.click.destroy();window.removeEventListener("popstate",this.boundPopStateHandler);this.cache.empty();this.options.plugins.forEach(function(e){t.unuse(e)});(0,M.queryAll)("[data-swup]").forEach(function(e){e.removeAttribute("data-swup")});this.off();this.triggerEvent("disabled");document.documentElement.classList.remove("swup-enabled")}},{key:"linkClickHandler",value:function e(t){if(!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&!t.altKey){if(t.button===0){this.triggerEvent("clickLink",t);t.preventDefault();var n=new H.Link(t.delegateTarget);if(n.getAddress()==(0,H.getCurrentUrl)()||n.getAddress()==""){if(n.getHash()!=""){this.triggerEvent("samePageWithHash",t);var r=(0,P.default)(n.getHash());if(r!=null){history.replaceState({url:n.getAddress()+n.getHash(),random:Math.random(),source:"swup"},document.title,n.getAddress()+n.getHash())}else{console.warn("Element for offset not found ("+n.getHash()+")")}}else{this.triggerEvent("samePage",t)}}else{if(n.getHash()!=""){this.scrollToElement=n.getHash()}var i=t.delegateTarget.getAttribute("data-swup-transition");this.loadPage({url:n.getAddress(),customTransition:i},false)}}}else{this.triggerEvent("openPageInNewTab",t)}}},{key:"popStateHandler",value:function e(t){if(this.options.skipPopStateHandling(t))return;var n=new H.Link(t.state?t.state.url:window.location.pathname);if(n.getHash()!==""){this.scrollToElement=n.getHash()}else{t.preventDefault()}this.triggerEvent("popState",t);if(!this.options.animateHistoryBrowsing){document.documentElement.classList.remove("is-animating");(0,H.cleanupAnimationClasses)()}this.loadPage({url:n.getAddress()},t)}}]);return e}();t.default=L},function(e,t,n){"use strict";n.r(t);const r=new WeakMap;function i(e,t,n,i){var a,o;if(!e&&!r.has(t)){return false}const s=(a=r.get(t))!==null&&a!==void 0?a:new WeakMap;r.set(t,s);if(!e&&!r.has(t)){return false}const u=(o=s.get(n))!==null&&o!==void 0?o:new Set;s.set(n,u);const l=u.has(i);if(e){u.add(i)}else{u.delete(i)}return l&&e}function a(e){return typeof e.addEventListener==="function"}function o(e,t){let n=e.target;if(n instanceof Text){n=n.parentElement}if(n instanceof Element&&e.currentTarget instanceof Element){const r=n.closest(t);if(r&&e.currentTarget.contains(r)){return r}}}function s(e,t,n,r,u){if(typeof e==="string"){e=document.querySelectorAll(e)}if(!a(e)){const i=Array.prototype.map.call(e,e=>s(e,t,n,r,u));return{destroy(){for(const e of i){e.destroy()}}}}const l=e instanceof Document?e.documentElement:e;const c=Boolean(typeof u==="object"?u.capture:u);const f=e=>{const n=o(e,t);if(n){e.delegateTarget=n;r.call(l,e)}};if(typeof u==="object"){delete u.once}const d=JSON.stringify({selector:t,type:n,capture:c});const h=i(true,l,r,d);const p={destroy(){l.removeEventListener(n,f,u);i(false,l,r,d)}};if(!h){l.addEventListener(n,f,u)}return p}t["default"]=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Cache=undefined;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();var i=n(0);function a(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var o=t.Cache=function(){function e(){a(this,e);this.pages={};this.last=null}r(e,[{key:"cacheUrl",value:function e(t){t.url=(0,i.normalizeUrl)(t.url);if(t.url in this.pages===false){this.pages[t.url]=t}this.last=this.pages[t.url];this.swup.log("Cache ("+Object.keys(this.pages).length+")",this.pages)}},{key:"getPage",value:function e(t){t=(0,i.normalizeUrl)(t);return this.pages[t]}},{key:"getCurrentPage",value:function e(){return this.getPage((0,i.getCurrentUrl)())}},{key:"exists",value:function e(t){t=(0,i.normalizeUrl)(t);return t in this.pages}},{key:"empty",value:function e(){this.pages={};this.last=null;this.swup.log("Cache cleared")}},{key:"remove",value:function e(t){delete this.pages[t]}}]);return e}();t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t){var n=t.toString().toLowerCase().replace(/\s+/g,"-").replace(/\//g,"-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,"");if(n[0]==="/")n=n.splice(1);if(n==="")n="homepage";return n};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t){window.history.pushState({url:t||window.location.href.split(window.location.hostname)[1],random:Math.random(),source:"swup"},document.title,t||window.location.href.split(window.location.hostname)[1])};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(1);var i=function e(t,n){var i=document.createElement("html");i.innerHTML=t;var a=[];n.forEach(function(e){if((0,r.query)(e,i)==null){console.warn("[swup] Container "+e+" not found on page.");return null}else{if((0,r.queryAll)(e).length!==(0,r.queryAll)(e,i).length){console.warn("[swup] Mismatched number of containers found on new page.")}(0,r.queryAll)(e).forEach(function(t,n){(0,r.queryAll)(e,i)[n].setAttribute("data-swup",a.length);a.push((0,r.queryAll)(e,i)[n].outerHTML)})}});var o={title:(i.querySelector("title")||{}).innerText,pageClass:i.querySelector("body").className,originalContent:t,blocks:a};i.innerHTML="";i=null;return o};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var i={url:window.location.pathname+window.location.search,method:"GET",data:null,headers:{}};var a=r({},i,t);var o=new XMLHttpRequest;o.onreadystatechange=function(){if(o.readyState===4){if(o.status!==500){n(o)}else{n(o)}}};o.open(a.method,a.url,true);Object.keys(a.headers).forEach(function(e){o.setRequestHeader(e,a.headers[e])});o.send(a.data);return o};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(){if(window.ontransitionend===undefined&&window.onwebkittransitionend!==undefined){return"webkitTransitionEnd"}else{return"transitionend"}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(){if(window.ontransitionend===undefined&&window.onwebkittransitionend!==undefined){return"WebkitTransition"}else{return"transition"}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(){return window.location.pathname+window.location.search};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(2);var i=a(r);function a(e){return e&&e.__esModule?e:{default:e}}var o=function e(t){return new i.default(t).getAddress()};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(1);var i=function e(t,n){var i=0;n.forEach(function(e){if((0,r.query)(e,t)==null){console.warn("[swup] Container "+e+" not found on page.")}else{(0,r.queryAll)(e).forEach(function(n,a){(0,r.queryAll)(e,t)[a].setAttribute("data-swup",i);i++})}})};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(){document.documentElement.className.split(" ").forEach(function(e){if(new RegExp("^to-").test(e)||e==="is-changing"||e==="is-rendering"||e==="is-popstate"){document.documentElement.classList.remove(e)}})};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function(){function e(e,t){var n=[];var r=true;var i=false;var a=undefined;try{for(var o=e[Symbol.iterator](),s;!(r=(s=o.next()).done);r=true){n.push(s.value);if(t&&n.length===t)break}}catch(e){i=true;a=e}finally{try{if(!r&&o["return"])o["return"]()}finally{if(i)throw a}}return n}return function(t,n){if(Array.isArray(t)){return t}else if(Symbol.iterator in Object(t)){return e(t,n)}else{throw new TypeError("Invalid attempt to destructure non-iterable instance")}}}();var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var a=n(0);var o=function e(t,n){var o=this;var s=[],u=void 0;var l=function e(){o.triggerEvent("animationOutStart");document.documentElement.classList.add("is-changing");document.documentElement.classList.add("is-leaving");document.documentElement.classList.add("is-animating");if(n){document.documentElement.classList.add("is-popstate")}document.documentElement.classList.add("to-"+(0,a.classify)(t.url));s=o.getAnimationPromises("out");Promise.all(s).then(function(){o.triggerEvent("animationOutDone")});if(!n){var r=void 0;if(o.scrollToElement!=null){r=t.url+o.scrollToElement}else{r=t.url}(0,a.createHistoryRecord)(r)}};this.triggerEvent("transitionStart",n);if(t.customTransition!=null){this.updateTransition(window.location.pathname,t.url,t.customTransition);document.documentElement.classList.add("to-"+(0,a.classify)(t.customTransition))}else{this.updateTransition(window.location.pathname,t.url)}if(!n||this.options.animateHistoryBrowsing){l()}else{this.triggerEvent("animationSkipped")}if(this.cache.exists(t.url)){u=new Promise(function(e){e(o.cache.getPage(t.url))});this.triggerEvent("pageRetrievedFromCache")}else{if(!this.preloadPromise||this.preloadPromise.route!=t.url){u=new Promise(function(e,n){(0,a.fetch)(i({},t,{headers:o.options.requestHeaders}),function(r){if(r.status===500){o.triggerEvent("serverError");n(t.url);return}else{var i=o.getPageData(r);if(i!=null&&i.blocks.length>0){i.url=t.url}else{n(t.url);return}o.cache.cacheUrl(i);o.triggerEvent("pageLoaded");e(i)}})})}else{u=this.preloadPromise}}Promise.all([u].concat(s)).then(function(e){var t=r(e,1),i=t[0];o.renderPage(i,n);o.preloadPromise=null}).catch(function(e){o.options.skipPopStateHandling=function(){window.location=e;return true};window.history.go(-1)})};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=n(0);var a=function e(t,n){var a=this;document.documentElement.classList.remove("is-leaving");var o=this.getCurrentUrl()===t.url;if(!o)return;var s=new i.Link(t.responseURL).getPath();if(window.location.pathname!==s){window.history.replaceState({url:s,random:Math.random(),source:"swup"},document.title,s);this.cache.cacheUrl(r({},t,{url:s}))}if(!n||this.options.animateHistoryBrowsing){document.documentElement.classList.add("is-rendering")}this.triggerEvent("willReplaceContent",n);for(var u=0;u<t.blocks.length;u++){document.body.querySelector('[data-swup="'+u+'"]').outerHTML=t.blocks[u]}document.title=t.title;this.triggerEvent("contentReplaced",n);this.triggerEvent("pageView",n);if(!this.options.cache){this.cache.empty()}setTimeout(function(){if(!n||a.options.animateHistoryBrowsing){a.triggerEvent("animationInStart");document.documentElement.classList.remove("is-animating")}},10);if(!n||this.options.animateHistoryBrowsing){var l=this.getAnimationPromises("in");Promise.all(l).then(function(){a.triggerEvent("animationInDone");a.triggerEvent("transitionEnd",n);a.cleanupAnimationClasses()})}else{this.triggerEvent("transitionEnd",n)}this.scrollToElement=null};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){this._handlers[t].forEach(function(e){try{e(n)}catch(e){console.error(e)}});var r=new CustomEvent("swup:"+t,{detail:t});document.dispatchEvent(r)};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){if(this._handlers[t]){this._handlers[t].push(n)}else{console.warn("Unsupported event "+t+".")}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){var r=this;if(t!=null){if(n!=null){if(this._handlers[t]&&this._handlers[t].filter(function(e){return e===n}).length){var i=this._handlers[t].filter(function(e){return e===n})[0];var a=this._handlers[t].indexOf(i);if(a>-1){this._handlers[t].splice(a,1)}}else{console.warn("Handler for event '"+t+"' no found.")}}else{this._handlers[t]=[]}}else{Object.keys(this._handlers).forEach(function(e){r._handlers[e]=[]})}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n,r){this.transition={from:t,to:n,custom:r}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(1);var i=function e(t){if(!t){return null}if(t.charAt(0)==="#"){t=t.substring(1)}t=decodeURIComponent(t);t=(0,r.escapeCssIdentifier)(t);return(0,r.query)("#"+t)||(0,r.query)("a[name='"+t+"']")};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(1);var i=n(0);var a=function e(){var t=this.options.animationSelector;var n=(0,i.transitionProperty)()+"Duration";var a=[];var o=(0,r.queryAll)(t,document.body);if(!o.length){console.warn("[swup] No animated elements found by selector "+t);return[Promise.resolve()]}o.forEach(function(e){var r=window.getComputedStyle(e)[n];if(!r||r=="0s"){console.warn("[swup] No CSS transition duration defined for element of selector "+t);a.push(Promise.resolve());return}var o=new Promise(function(t){e.addEventListener((0,i.transitionEnd)(),function(n){if(e==n.target){t()}})});a.push(o)});return a};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(0);var i=function e(t){var n=t.responseText;var i=(0,r.getDataFromHtml)(n,this.options.containers);if(i){i.responseURL=t.responseURL?t.responseURL:window.location.href}else{console.warn("[swup] Received page is invalid.");return null}return i};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=t.use=function e(t){if(!t.isSwupPlugin){console.warn("Not swup plugin instance "+t+".");return}this.plugins.push(t);t.swup=this;if(typeof t._beforeMount==="function"){t._beforeMount()}t.mount();return this.plugins};var i=t.unuse=function e(t){var n=void 0;if(typeof t==="string"){n=this.plugins.find(function(e){return t===e.name})}else{n=t}if(!n){console.warn("No such plugin.");return}n.unmount();if(typeof n._afterUnmount==="function"){n._afterUnmount()}var r=this.plugins.indexOf(n);this.plugins.splice(r,1);return this.plugins};var a=t.findPlugin=function e(t){return this.plugins.find(function(e){return t===e.name})}}])});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var cleanupAnimationClasses = function cleanupAnimationClasses() {
|
|
7
|
+
document.documentElement.className.split(' ').forEach(function (classItem) {
|
|
8
|
+
if (
|
|
9
|
+
// remove "to-{page}" classes
|
|
10
|
+
new RegExp('^to-').test(classItem) ||
|
|
11
|
+
// remove all other classes
|
|
12
|
+
classItem === 'is-changing' || classItem === 'is-rendering' || classItem === 'is-popstate') {
|
|
13
|
+
document.documentElement.classList.remove(classItem);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports.default = cleanupAnimationClasses;
|
|
@@ -8,7 +8,7 @@ var createHistoryRecord = function createHistoryRecord(url) {
|
|
|
8
8
|
url: url || window.location.href.split(window.location.hostname)[1],
|
|
9
9
|
random: Math.random(),
|
|
10
10
|
source: 'swup'
|
|
11
|
-
}, document.
|
|
11
|
+
}, document.title, url || window.location.href.split(window.location.hostname)[1]);
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
exports.default = createHistoryRecord;
|
|
@@ -4,8 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
8
|
-
|
|
9
7
|
var _utils = require('../utils');
|
|
10
8
|
|
|
11
9
|
var getDataFromHtml = function getDataFromHtml(html, containers) {
|
|
@@ -13,28 +11,23 @@ var getDataFromHtml = function getDataFromHtml(html, containers) {
|
|
|
13
11
|
fakeDom.innerHTML = html;
|
|
14
12
|
var blocks = [];
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
return
|
|
20
|
-
v: null
|
|
21
|
-
};
|
|
14
|
+
containers.forEach(function (selector) {
|
|
15
|
+
if ((0, _utils.query)(selector, fakeDom) == null) {
|
|
16
|
+
console.warn('[swup] Container ' + selector + ' not found on page.');
|
|
17
|
+
return null;
|
|
22
18
|
} else {
|
|
23
|
-
(0, _utils.queryAll)(
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
if ((0, _utils.queryAll)(selector).length !== (0, _utils.queryAll)(selector, fakeDom).length) {
|
|
20
|
+
console.warn('[swup] Mismatched number of containers found on new page.');
|
|
21
|
+
}
|
|
22
|
+
(0, _utils.queryAll)(selector).forEach(function (item, index) {
|
|
23
|
+
(0, _utils.queryAll)(selector, fakeDom)[index].setAttribute('data-swup', blocks.length);
|
|
24
|
+
blocks.push((0, _utils.queryAll)(selector, fakeDom)[index].outerHTML);
|
|
26
25
|
});
|
|
27
26
|
}
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
for (var i = 0; i < containers.length; i++) {
|
|
31
|
-
var _ret = _loop(i);
|
|
32
|
-
|
|
33
|
-
if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
|
|
34
|
-
}
|
|
27
|
+
});
|
|
35
28
|
|
|
36
29
|
var json = {
|
|
37
|
-
title: fakeDom.querySelector('title').innerText,
|
|
30
|
+
title: (fakeDom.querySelector('title') || {}).innerText,
|
|
38
31
|
pageClass: fakeDom.querySelector('body').className,
|
|
39
32
|
originalContent: html,
|
|
40
33
|
blocks: blocks
|
package/lib/helpers/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.Link = exports.markSwupElements = exports.getCurrentUrl = exports.transitionEnd = exports.fetch = exports.getDataFromHtml = exports.createHistoryRecord = exports.classify = undefined;
|
|
6
|
+
exports.cleanupAnimationClasses = exports.Link = exports.markSwupElements = exports.normalizeUrl = exports.getCurrentUrl = exports.transitionProperty = exports.transitionEnd = exports.fetch = exports.getDataFromHtml = exports.createHistoryRecord = exports.classify = undefined;
|
|
7
7
|
|
|
8
8
|
var _classify = require('./classify');
|
|
9
9
|
|
|
@@ -25,10 +25,18 @@ var _transitionEnd = require('./transitionEnd');
|
|
|
25
25
|
|
|
26
26
|
var _transitionEnd2 = _interopRequireDefault(_transitionEnd);
|
|
27
27
|
|
|
28
|
+
var _transitionProperty = require('./transitionProperty');
|
|
29
|
+
|
|
30
|
+
var _transitionProperty2 = _interopRequireDefault(_transitionProperty);
|
|
31
|
+
|
|
28
32
|
var _getCurrentUrl = require('./getCurrentUrl');
|
|
29
33
|
|
|
30
34
|
var _getCurrentUrl2 = _interopRequireDefault(_getCurrentUrl);
|
|
31
35
|
|
|
36
|
+
var _normalizeUrl = require('./normalizeUrl');
|
|
37
|
+
|
|
38
|
+
var _normalizeUrl2 = _interopRequireDefault(_normalizeUrl);
|
|
39
|
+
|
|
32
40
|
var _markSwupElements = require('./markSwupElements');
|
|
33
41
|
|
|
34
42
|
var _markSwupElements2 = _interopRequireDefault(_markSwupElements);
|
|
@@ -37,6 +45,10 @@ var _Link = require('./Link');
|
|
|
37
45
|
|
|
38
46
|
var _Link2 = _interopRequireDefault(_Link);
|
|
39
47
|
|
|
48
|
+
var _cleanupAnimationClasses = require('./cleanupAnimationClasses');
|
|
49
|
+
|
|
50
|
+
var _cleanupAnimationClasses2 = _interopRequireDefault(_cleanupAnimationClasses);
|
|
51
|
+
|
|
40
52
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
41
53
|
|
|
42
54
|
var classify = exports.classify = _classify2.default;
|
|
@@ -44,6 +56,9 @@ var createHistoryRecord = exports.createHistoryRecord = _createHistoryRecord2.de
|
|
|
44
56
|
var getDataFromHtml = exports.getDataFromHtml = _getDataFromHtml2.default;
|
|
45
57
|
var fetch = exports.fetch = _fetch2.default;
|
|
46
58
|
var transitionEnd = exports.transitionEnd = _transitionEnd2.default;
|
|
59
|
+
var transitionProperty = exports.transitionProperty = _transitionProperty2.default;
|
|
47
60
|
var getCurrentUrl = exports.getCurrentUrl = _getCurrentUrl2.default;
|
|
61
|
+
var normalizeUrl = exports.normalizeUrl = _normalizeUrl2.default;
|
|
48
62
|
var markSwupElements = exports.markSwupElements = _markSwupElements2.default;
|
|
49
|
-
var Link = exports.Link = _Link2.default;
|
|
63
|
+
var Link = exports.Link = _Link2.default;
|
|
64
|
+
var cleanupAnimationClasses = exports.cleanupAnimationClasses = _cleanupAnimationClasses2.default;
|
|
@@ -9,20 +9,16 @@ var _utils = require('../utils');
|
|
|
9
9
|
var markSwupElements = function markSwupElements(element, containers) {
|
|
10
10
|
var blocks = 0;
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
if (
|
|
14
|
-
console.warn('
|
|
12
|
+
containers.forEach(function (selector) {
|
|
13
|
+
if ((0, _utils.query)(selector, element) == null) {
|
|
14
|
+
console.warn('[swup] Container ' + selector + ' not found on page.');
|
|
15
15
|
} else {
|
|
16
|
-
(0, _utils.queryAll)(
|
|
17
|
-
(0, _utils.queryAll)(
|
|
16
|
+
(0, _utils.queryAll)(selector).forEach(function (item, index) {
|
|
17
|
+
(0, _utils.queryAll)(selector, element)[index].setAttribute('data-swup', blocks);
|
|
18
18
|
blocks++;
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
for (var i = 0; i < containers.length; i++) {
|
|
24
|
-
_loop(i);
|
|
25
|
-
}
|
|
21
|
+
});
|
|
26
22
|
};
|
|
27
23
|
|
|
28
24
|
exports.default = markSwupElements;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _Link = require('./Link');
|
|
8
|
+
|
|
9
|
+
var _Link2 = _interopRequireDefault(_Link);
|
|
10
|
+
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
|
|
13
|
+
var normalizeUrl = function normalizeUrl(url) {
|
|
14
|
+
return new _Link2.default(url).getAddress();
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
exports.default = normalizeUrl;
|
|
@@ -4,22 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
var transitionEnd = function transitionEnd() {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
MozTransition: 'transitionend',
|
|
12
|
-
OTransition: 'oTransitionEnd otransitionend',
|
|
13
|
-
transition: 'transitionend'
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
for (var name in transEndEventNames) {
|
|
17
|
-
if (el.style[name] !== undefined) {
|
|
18
|
-
return transEndEventNames[name];
|
|
19
|
-
}
|
|
7
|
+
if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) {
|
|
8
|
+
return 'webkitTransitionEnd';
|
|
9
|
+
} else {
|
|
10
|
+
return 'transitionend';
|
|
20
11
|
}
|
|
21
|
-
|
|
22
|
-
return false;
|
|
23
12
|
};
|
|
24
13
|
|
|
25
14
|
exports.default = transitionEnd;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var transitionProperty = function transitionProperty() {
|
|
7
|
+
if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) {
|
|
8
|
+
return 'WebkitTransition';
|
|
9
|
+
} else {
|
|
10
|
+
return 'transition';
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.default = transitionProperty;
|
package/lib/index.js
CHANGED
|
@@ -144,6 +144,8 @@ var Swup = function () {
|
|
|
144
144
|
this.use = _plugins.use;
|
|
145
145
|
this.unuse = _plugins.unuse;
|
|
146
146
|
this.findPlugin = _plugins.findPlugin;
|
|
147
|
+
this.getCurrentUrl = _helpers.getCurrentUrl;
|
|
148
|
+
this.cleanupAnimationClasses = _helpers.cleanupAnimationClasses;
|
|
147
149
|
|
|
148
150
|
// enable swup
|
|
149
151
|
this.enable();
|
|
@@ -165,11 +167,11 @@ var Swup = function () {
|
|
|
165
167
|
window.addEventListener('popstate', this.boundPopStateHandler);
|
|
166
168
|
|
|
167
169
|
// initial save to cache
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
if (this.options.cache) {}
|
|
171
|
+
// disabled to avoid caching modified dom state
|
|
172
|
+
// https://github.com/swup/swup/issues/475
|
|
173
|
+
// logic moved to preload plugin
|
|
174
|
+
|
|
173
175
|
|
|
174
176
|
// mark swup blocks in html
|
|
175
177
|
(0, _helpers.markSwupElements)(document.documentElement, this.options.containers);
|
|
@@ -287,6 +289,12 @@ var Swup = function () {
|
|
|
287
289
|
event.preventDefault();
|
|
288
290
|
}
|
|
289
291
|
this.triggerEvent('popState', event);
|
|
292
|
+
|
|
293
|
+
if (!this.options.animateHistoryBrowsing) {
|
|
294
|
+
document.documentElement.classList.remove('is-animating');
|
|
295
|
+
(0, _helpers.cleanupAnimationClasses)();
|
|
296
|
+
}
|
|
297
|
+
|
|
290
298
|
this.loadPage({ url: link.getAddress() }, event);
|
|
291
299
|
}
|
|
292
300
|
}]);
|
package/lib/modules/Cache.js
CHANGED
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.Cache = undefined;
|
|
6
7
|
|
|
7
8
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
8
9
|
|
|
10
|
+
var _helpers = require('../helpers');
|
|
11
|
+
|
|
9
12
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
10
13
|
|
|
11
14
|
var Cache = exports.Cache = function () {
|
|
@@ -19,6 +22,7 @@ var Cache = exports.Cache = function () {
|
|
|
19
22
|
_createClass(Cache, [{
|
|
20
23
|
key: 'cacheUrl',
|
|
21
24
|
value: function cacheUrl(page) {
|
|
25
|
+
page.url = (0, _helpers.normalizeUrl)(page.url);
|
|
22
26
|
if (page.url in this.pages === false) {
|
|
23
27
|
this.pages[page.url] = page;
|
|
24
28
|
}
|
|
@@ -28,16 +32,18 @@ var Cache = exports.Cache = function () {
|
|
|
28
32
|
}, {
|
|
29
33
|
key: 'getPage',
|
|
30
34
|
value: function getPage(url) {
|
|
35
|
+
url = (0, _helpers.normalizeUrl)(url);
|
|
31
36
|
return this.pages[url];
|
|
32
37
|
}
|
|
33
38
|
}, {
|
|
34
39
|
key: 'getCurrentPage',
|
|
35
40
|
value: function getCurrentPage() {
|
|
36
|
-
return this.getPage(
|
|
41
|
+
return this.getPage((0, _helpers.getCurrentUrl)());
|
|
37
42
|
}
|
|
38
43
|
}, {
|
|
39
44
|
key: 'exists',
|
|
40
45
|
value: function exists(url) {
|
|
46
|
+
url = (0, _helpers.normalizeUrl)(url);
|
|
41
47
|
return url in this.pages;
|
|
42
48
|
}
|
|
43
49
|
}, {
|
|
@@ -9,9 +9,24 @@ var _utils = require('../utils');
|
|
|
9
9
|
var _helpers = require('../helpers');
|
|
10
10
|
|
|
11
11
|
var getAnimationPromises = function getAnimationPromises() {
|
|
12
|
+
var selector = this.options.animationSelector;
|
|
13
|
+
var durationProperty = (0, _helpers.transitionProperty)() + 'Duration';
|
|
12
14
|
var promises = [];
|
|
13
|
-
var animatedElements = (0, _utils.queryAll)(
|
|
15
|
+
var animatedElements = (0, _utils.queryAll)(selector, document.body);
|
|
16
|
+
|
|
17
|
+
if (!animatedElements.length) {
|
|
18
|
+
console.warn('[swup] No animated elements found by selector ' + selector);
|
|
19
|
+
return [Promise.resolve()];
|
|
20
|
+
}
|
|
21
|
+
|
|
14
22
|
animatedElements.forEach(function (element) {
|
|
23
|
+
var transitionDuration = window.getComputedStyle(element)[durationProperty];
|
|
24
|
+
// Resolve immediately if no transition defined
|
|
25
|
+
if (!transitionDuration || transitionDuration == '0s') {
|
|
26
|
+
console.warn('[swup] No CSS transition duration defined for element of selector ' + selector);
|
|
27
|
+
promises.push(Promise.resolve());
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
15
30
|
var promise = new Promise(function (resolve) {
|
|
16
31
|
element.addEventListener((0, _helpers.transitionEnd)(), function (event) {
|
|
17
32
|
if (element == event.target) {
|
|
@@ -21,6 +36,7 @@ var getAnimationPromises = function getAnimationPromises() {
|
|
|
21
36
|
});
|
|
22
37
|
promises.push(promise);
|
|
23
38
|
});
|
|
39
|
+
|
|
24
40
|
return promises;
|
|
25
41
|
};
|
|
26
42
|
|
|
@@ -16,7 +16,7 @@ var getPageData = function getPageData(request) {
|
|
|
16
16
|
if (pageObject) {
|
|
17
17
|
pageObject.responseURL = request.responseURL ? request.responseURL : window.location.href;
|
|
18
18
|
} else {
|
|
19
|
-
console.warn('Received page is invalid.');
|
|
19
|
+
console.warn('[swup] Received page is invalid.');
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
22
|
|
package/lib/modules/loadPage.js
CHANGED
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
+
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
8
|
+
|
|
7
9
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
8
10
|
|
|
9
11
|
var _helpers = require('../helpers');
|
|
@@ -66,7 +68,7 @@ var loadPage = function loadPage(data, popstate) {
|
|
|
66
68
|
// start/skip loading of page
|
|
67
69
|
if (this.cache.exists(data.url)) {
|
|
68
70
|
xhrPromise = new Promise(function (resolve) {
|
|
69
|
-
resolve();
|
|
71
|
+
resolve(_this.cache.getPage(data.url));
|
|
70
72
|
});
|
|
71
73
|
this.triggerEvent('pageRetrievedFromCache');
|
|
72
74
|
} else {
|
|
@@ -80,7 +82,7 @@ var loadPage = function loadPage(data, popstate) {
|
|
|
80
82
|
} else {
|
|
81
83
|
// get json data
|
|
82
84
|
var page = _this.getPageData(response);
|
|
83
|
-
if (page != null) {
|
|
85
|
+
if (page != null && page.blocks.length > 0) {
|
|
84
86
|
page.url = data.url;
|
|
85
87
|
} else {
|
|
86
88
|
reject(data.url);
|
|
@@ -89,8 +91,8 @@ var loadPage = function loadPage(data, popstate) {
|
|
|
89
91
|
// render page
|
|
90
92
|
_this.cache.cacheUrl(page);
|
|
91
93
|
_this.triggerEvent('pageLoaded');
|
|
94
|
+
resolve(page);
|
|
92
95
|
}
|
|
93
|
-
resolve();
|
|
94
96
|
});
|
|
95
97
|
});
|
|
96
98
|
} else {
|
|
@@ -99,9 +101,12 @@ var loadPage = function loadPage(data, popstate) {
|
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
// when everything is ready, handle the outcome
|
|
102
|
-
Promise.all(
|
|
104
|
+
Promise.all([xhrPromise].concat(animationPromises)).then(function (_ref) {
|
|
105
|
+
var _ref2 = _slicedToArray(_ref, 1),
|
|
106
|
+
pageData = _ref2[0];
|
|
107
|
+
|
|
103
108
|
// render page
|
|
104
|
-
_this.renderPage(
|
|
109
|
+
_this.renderPage(pageData, popstate);
|
|
105
110
|
_this.preloadPromise = null;
|
|
106
111
|
}).catch(function (errorUrl) {
|
|
107
112
|
// rewrite the skipPopStateHandling function to redirect manually when the history.go is processed
|
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
|
|
7
7
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
8
8
|
|
|
9
|
-
var _utils = require('../utils');
|
|
10
|
-
|
|
11
9
|
var _helpers = require('../helpers');
|
|
12
10
|
|
|
13
11
|
var renderPage = function renderPage(page, popstate) {
|
|
@@ -15,17 +13,20 @@ var renderPage = function renderPage(page, popstate) {
|
|
|
15
13
|
|
|
16
14
|
document.documentElement.classList.remove('is-leaving');
|
|
17
15
|
|
|
16
|
+
var isCurrentPage = this.getCurrentUrl() === page.url;
|
|
17
|
+
if (!isCurrentPage) return;
|
|
18
|
+
|
|
18
19
|
// replace state in case the url was redirected
|
|
19
|
-
var
|
|
20
|
-
if (window.location.pathname !==
|
|
20
|
+
var url = new _helpers.Link(page.responseURL).getPath();
|
|
21
|
+
if (window.location.pathname !== url) {
|
|
21
22
|
window.history.replaceState({
|
|
22
|
-
url:
|
|
23
|
+
url: url,
|
|
23
24
|
random: Math.random(),
|
|
24
25
|
source: 'swup'
|
|
25
|
-
}, document.title,
|
|
26
|
+
}, document.title, url);
|
|
26
27
|
|
|
27
28
|
// save new record for redirected url
|
|
28
|
-
this.cache.cacheUrl(_extends({}, page, { url:
|
|
29
|
+
this.cache.cacheUrl(_extends({}, page, { url: url }));
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
// only add for non-popstate transitions
|
|
@@ -34,15 +35,12 @@ var renderPage = function renderPage(page, popstate) {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
this.triggerEvent('willReplaceContent', popstate);
|
|
37
|
-
|
|
38
38
|
// replace blocks
|
|
39
39
|
for (var i = 0; i < page.blocks.length; i++) {
|
|
40
40
|
document.body.querySelector('[data-swup="' + i + '"]').outerHTML = page.blocks[i];
|
|
41
41
|
}
|
|
42
|
-
|
|
43
42
|
// set title
|
|
44
43
|
document.title = page.title;
|
|
45
|
-
|
|
46
44
|
this.triggerEvent('contentReplaced', popstate);
|
|
47
45
|
this.triggerEvent('pageView', popstate);
|
|
48
46
|
|
|
@@ -65,12 +63,7 @@ var renderPage = function renderPage(page, popstate) {
|
|
|
65
63
|
Promise.all(animationPromises).then(function () {
|
|
66
64
|
_this.triggerEvent('animationInDone');
|
|
67
65
|
_this.triggerEvent('transitionEnd', popstate);
|
|
68
|
-
|
|
69
|
-
document.documentElement.className.split(' ').forEach(function (classItem) {
|
|
70
|
-
if (new RegExp('^to-').test(classItem) || classItem === 'is-changing' || classItem === 'is-rendering' || classItem === 'is-popstate') {
|
|
71
|
-
document.documentElement.classList.remove(classItem);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
66
|
+
_this.cleanupAnimationClasses();
|
|
74
67
|
});
|
|
75
68
|
} else {
|
|
76
69
|
this.triggerEvent('transitionEnd', popstate);
|
package/package.json
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swup",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.19",
|
|
4
4
|
"description": "Complete, flexible, extensible and easy to use page transition library for your web.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"cy:open": "cypress open",
|
|
8
8
|
"compile": "babel --presets es2015,stage-0 -d lib/ src/",
|
|
9
9
|
"build": "webpack-cli",
|
|
10
|
+
"lint": "prettier src/**/*.{js,mjs} --write",
|
|
10
11
|
"prepublish": "npm run compile && npm run build",
|
|
11
12
|
"postinstall": "opencollective-postinstall || true",
|
|
12
|
-
"
|
|
13
|
+
"ci": "npm run build && npm run test:instrument && start-server-and-test test:server http://localhost:8274 test:run:record",
|
|
14
|
+
"test": "npm run build && npm run test:instrument && start-server-and-test test:server http://localhost:8274 test:run",
|
|
15
|
+
"test:headed": "npm run build && npm run test:instrument && start-server-and-test test:server http://localhost:8274 cy:open",
|
|
13
16
|
"test:instrument": "nyc instrument --compact=false dist test/site/swup",
|
|
14
|
-
"test:server": "http-server test/site",
|
|
15
|
-
"test:run": "cypress run
|
|
17
|
+
"test:server": "http-server --port 8274 test/site",
|
|
18
|
+
"test:run": "cypress run",
|
|
19
|
+
"test:run:record": "cypress run --record"
|
|
16
20
|
},
|
|
17
21
|
"author": "Georgy Marchuk",
|
|
18
22
|
"license": "MIT",
|
|
@@ -51,5 +55,6 @@
|
|
|
51
55
|
"collective": {
|
|
52
56
|
"type": "opencollective",
|
|
53
57
|
"url": "https://opencollective.com/swup"
|
|
54
|
-
}
|
|
58
|
+
},
|
|
59
|
+
"prettier": "@swup/prettier-config"
|
|
55
60
|
}
|