swup 2.0.14 → 2.0.15

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.
@@ -0,0 +1,13 @@
1
+ const { defineConfig } = require('cypress')
2
+
3
+ module.exports = defineConfig({
4
+ projectId: 'dpucip',
5
+ e2e: {
6
+ baseUrl: 'http://localhost:8080',
7
+ specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
8
+ setupNodeEvents(on, config) {
9
+ require('@cypress/code-coverage/task')(on, config)
10
+ return config
11
+ }
12
+ }
13
+ })
package/dist/swup.js CHANGED
@@ -106,35 +106,35 @@ Object.defineProperty(exports, "__esModule", {
106
106
  });
107
107
  exports.Link = exports.markSwupElements = exports.getCurrentUrl = exports.transitionEnd = exports.fetch = exports.getDataFromHtml = exports.createHistoryRecord = exports.classify = undefined;
108
108
 
109
- var _classify = __webpack_require__(8);
109
+ var _classify = __webpack_require__(7);
110
110
 
111
111
  var _classify2 = _interopRequireDefault(_classify);
112
112
 
113
- var _createHistoryRecord = __webpack_require__(9);
113
+ var _createHistoryRecord = __webpack_require__(8);
114
114
 
115
115
  var _createHistoryRecord2 = _interopRequireDefault(_createHistoryRecord);
116
116
 
117
- var _getDataFromHtml = __webpack_require__(10);
117
+ var _getDataFromHtml = __webpack_require__(9);
118
118
 
119
119
  var _getDataFromHtml2 = _interopRequireDefault(_getDataFromHtml);
120
120
 
121
- var _fetch = __webpack_require__(11);
121
+ var _fetch = __webpack_require__(10);
122
122
 
123
123
  var _fetch2 = _interopRequireDefault(_fetch);
124
124
 
125
- var _transitionEnd = __webpack_require__(12);
125
+ var _transitionEnd = __webpack_require__(11);
126
126
 
127
127
  var _transitionEnd2 = _interopRequireDefault(_transitionEnd);
128
128
 
129
- var _getCurrentUrl = __webpack_require__(13);
129
+ var _getCurrentUrl = __webpack_require__(12);
130
130
 
131
131
  var _getCurrentUrl2 = _interopRequireDefault(_getCurrentUrl);
132
132
 
133
- var _markSwupElements = __webpack_require__(14);
133
+ var _markSwupElements = __webpack_require__(13);
134
134
 
135
135
  var _markSwupElements2 = _interopRequireDefault(_markSwupElements);
136
136
 
137
- var _Link = __webpack_require__(15);
137
+ var _Link = __webpack_require__(14);
138
138
 
139
139
  var _Link2 = _interopRequireDefault(_Link);
140
140
 
@@ -212,47 +212,47 @@ var _createClass = function () { function defineProperties(target, props) { for
212
212
  // modules
213
213
 
214
214
 
215
- var _delegate = __webpack_require__(4);
215
+ var _delegateIt = __webpack_require__(4);
216
216
 
217
- var _delegate2 = _interopRequireDefault(_delegate);
217
+ var _delegateIt2 = _interopRequireDefault(_delegateIt);
218
218
 
219
- var _Cache = __webpack_require__(6);
219
+ var _Cache = __webpack_require__(5);
220
220
 
221
221
  var _Cache2 = _interopRequireDefault(_Cache);
222
222
 
223
- var _loadPage = __webpack_require__(7);
223
+ var _loadPage = __webpack_require__(6);
224
224
 
225
225
  var _loadPage2 = _interopRequireDefault(_loadPage);
226
226
 
227
- var _renderPage = __webpack_require__(16);
227
+ var _renderPage = __webpack_require__(15);
228
228
 
229
229
  var _renderPage2 = _interopRequireDefault(_renderPage);
230
230
 
231
- var _triggerEvent = __webpack_require__(17);
231
+ var _triggerEvent = __webpack_require__(16);
232
232
 
233
233
  var _triggerEvent2 = _interopRequireDefault(_triggerEvent);
234
234
 
235
- var _on = __webpack_require__(18);
235
+ var _on = __webpack_require__(17);
236
236
 
237
237
  var _on2 = _interopRequireDefault(_on);
238
238
 
239
- var _off = __webpack_require__(19);
239
+ var _off = __webpack_require__(18);
240
240
 
241
241
  var _off2 = _interopRequireDefault(_off);
242
242
 
243
- var _updateTransition = __webpack_require__(20);
243
+ var _updateTransition = __webpack_require__(19);
244
244
 
245
245
  var _updateTransition2 = _interopRequireDefault(_updateTransition);
246
246
 
247
- var _getAnimationPromises = __webpack_require__(21);
247
+ var _getAnimationPromises = __webpack_require__(20);
248
248
 
249
249
  var _getAnimationPromises2 = _interopRequireDefault(_getAnimationPromises);
250
250
 
251
- var _getPageData = __webpack_require__(22);
251
+ var _getPageData = __webpack_require__(21);
252
252
 
253
253
  var _getPageData2 = _interopRequireDefault(_getPageData);
254
254
 
255
- var _plugins = __webpack_require__(23);
255
+ var _plugins = __webpack_require__(22);
256
256
 
257
257
  var _utils = __webpack_require__(1);
258
258
 
@@ -357,7 +357,7 @@ var Swup = function () {
357
357
  }
358
358
 
359
359
  // add event listeners
360
- this.delegatedListeners.click = (0, _delegate2.default)(document, this.options.linkSelector, 'click', this.linkClickHandler.bind(this));
360
+ this.delegatedListeners.click = (0, _delegateIt2.default)(document, this.options.linkSelector, 'click', this.linkClickHandler.bind(this));
361
361
  window.addEventListener('popstate', this.boundPopStateHandler);
362
362
 
363
363
  // initial save to cache
@@ -494,95 +494,99 @@ exports.default = Swup;
494
494
 
495
495
  /***/ }),
496
496
  /* 4 */
497
- /***/ (function(module, exports, __webpack_require__) {
497
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
498
498
 
499
- var closest = __webpack_require__(5);
500
-
501
- /**
502
- * Delegates event to a selector.
503
- *
504
- * @param {Element} element
505
- * @param {String} selector
506
- * @param {String} type
507
- * @param {Function} callback
508
- * @param {Boolean} useCapture
509
- * @return {Object}
510
- */
511
- function delegate(element, selector, type, callback, useCapture) {
512
- var listenerFn = listener.apply(this, arguments);
513
-
514
- element.addEventListener(type, listenerFn, useCapture);
515
-
516
- return {
517
- destroy: function() {
518
- element.removeEventListener(type, listenerFn, useCapture);
519
- }
499
+ "use strict";
500
+ __webpack_require__.r(__webpack_exports__);
501
+ /** Keeps track of raw listeners added to the base elements to avoid duplication */
502
+ const ledger = new WeakMap();
503
+ function editLedger(wanted, baseElement, callback, setup) {
504
+ var _a, _b;
505
+ if (!wanted && !ledger.has(baseElement)) {
506
+ return false;
507
+ }
508
+ const elementMap = (_a = ledger.get(baseElement)) !== null && _a !== void 0 ? _a : new WeakMap();
509
+ ledger.set(baseElement, elementMap);
510
+ if (!wanted && !ledger.has(baseElement)) {
511
+ return false;
520
512
  }
513
+ const setups = (_b = elementMap.get(callback)) !== null && _b !== void 0 ? _b : new Set();
514
+ elementMap.set(callback, setups);
515
+ const existed = setups.has(setup);
516
+ if (wanted) {
517
+ setups.add(setup);
518
+ }
519
+ else {
520
+ setups.delete(setup);
521
+ }
522
+ return existed && wanted;
521
523
  }
522
-
523
- /**
524
- * Finds closest match and invokes callback.
525
- *
526
- * @param {Element} element
527
- * @param {String} selector
528
- * @param {String} type
529
- * @param {Function} callback
530
- * @return {Function}
531
- */
532
- function listener(element, selector, type, callback) {
533
- return function(e) {
534
- e.delegateTarget = closest(e.target, selector);
535
-
536
- if (e.delegateTarget) {
537
- callback.call(element, e);
524
+ function isEventTarget(elements) {
525
+ return typeof elements.addEventListener === 'function';
526
+ }
527
+ function safeClosest(event, selector) {
528
+ let target = event.target;
529
+ if (target instanceof Text) {
530
+ target = target.parentElement;
531
+ }
532
+ if (target instanceof Element && event.currentTarget instanceof Element) {
533
+ // `.closest()` may match ancestors of `currentTarget` but we only need its children
534
+ const closest = target.closest(selector);
535
+ if (closest && event.currentTarget.contains(closest)) {
536
+ return closest;
538
537
  }
539
538
  }
540
539
  }
541
-
542
- module.exports = delegate;
543
-
544
-
545
- /***/ }),
546
- /* 5 */
547
- /***/ (function(module, exports) {
548
-
549
- var DOCUMENT_NODE_TYPE = 9;
550
-
551
- /**
552
- * A polyfill for Element.matches()
553
- */
554
- if (typeof Element !== 'undefined' && !Element.prototype.matches) {
555
- var proto = Element.prototype;
556
-
557
- proto.matches = proto.matchesSelector ||
558
- proto.mozMatchesSelector ||
559
- proto.msMatchesSelector ||
560
- proto.oMatchesSelector ||
561
- proto.webkitMatchesSelector;
562
- }
563
-
564
- /**
565
- * Finds the closest parent that matches a selector.
566
- *
567
- * @param {Element} element
568
- * @param {String} selector
569
- * @return {Function}
570
- */
571
- function closest (element, selector) {
572
- while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
573
- if (typeof element.matches === 'function' &&
574
- element.matches(selector)) {
575
- return element;
540
+ // This type isn't exported as a declaration, so it needs to be duplicated above
541
+ function delegate(base, selector, type, callback, options) {
542
+ // Handle Selector-based usage
543
+ if (typeof base === 'string') {
544
+ base = document.querySelectorAll(base);
545
+ }
546
+ // Handle Array-like based usage
547
+ if (!isEventTarget(base)) {
548
+ const subscriptions = Array.prototype.map.call(base, (element) => delegate(element, selector, type, callback, options));
549
+ return {
550
+ destroy() {
551
+ for (const subscription of subscriptions) {
552
+ subscription.destroy();
553
+ }
554
+ },
555
+ };
556
+ }
557
+ // `document` should never be the base, it's just an easy way to define "global event listeners"
558
+ const baseElement = base instanceof Document ? base.documentElement : base;
559
+ // Handle the regular Element usage
560
+ const capture = Boolean(typeof options === 'object' ? options.capture : options);
561
+ const listenerFn = (event) => {
562
+ const delegateTarget = safeClosest(event, selector);
563
+ if (delegateTarget) {
564
+ event.delegateTarget = delegateTarget;
565
+ callback.call(baseElement, event);
576
566
  }
577
- element = element.parentNode;
567
+ };
568
+ // Drop unsupported `once` option https://github.com/fregante/delegate-it/pull/28#discussion_r863467939
569
+ if (typeof options === 'object') {
570
+ delete options.once;
571
+ }
572
+ const setup = JSON.stringify({ selector, type, capture });
573
+ const isAlreadyListening = editLedger(true, baseElement, callback, setup);
574
+ const delegateSubscription = {
575
+ destroy() {
576
+ baseElement.removeEventListener(type, listenerFn, options);
577
+ editLedger(false, baseElement, callback, setup);
578
+ },
579
+ };
580
+ if (!isAlreadyListening) {
581
+ baseElement.addEventListener(type, listenerFn, options);
578
582
  }
583
+ return delegateSubscription;
579
584
  }
580
-
581
- module.exports = closest;
585
+ /* harmony default export */ __webpack_exports__["default"] = (delegate);
582
586
 
583
587
 
584
588
  /***/ }),
585
- /* 6 */
589
+ /* 5 */
586
590
  /***/ (function(module, exports, __webpack_require__) {
587
591
 
588
592
  "use strict";
@@ -648,7 +652,7 @@ var Cache = exports.Cache = function () {
648
652
  exports.default = Cache;
649
653
 
650
654
  /***/ }),
651
- /* 7 */
655
+ /* 6 */
652
656
  /***/ (function(module, exports, __webpack_require__) {
653
657
 
654
658
  "use strict";
@@ -772,7 +776,7 @@ var loadPage = function loadPage(data, popstate) {
772
776
  exports.default = loadPage;
773
777
 
774
778
  /***/ }),
775
- /* 8 */
779
+ /* 7 */
776
780
  /***/ (function(module, exports, __webpack_require__) {
777
781
 
778
782
  "use strict";
@@ -796,7 +800,7 @@ var classify = function classify(text) {
796
800
  exports.default = classify;
797
801
 
798
802
  /***/ }),
799
- /* 9 */
803
+ /* 8 */
800
804
  /***/ (function(module, exports, __webpack_require__) {
801
805
 
802
806
  "use strict";
@@ -816,7 +820,7 @@ var createHistoryRecord = function createHistoryRecord(url) {
816
820
  exports.default = createHistoryRecord;
817
821
 
818
822
  /***/ }),
819
- /* 10 */
823
+ /* 9 */
820
824
  /***/ (function(module, exports, __webpack_require__) {
821
825
 
822
826
  "use strict";
@@ -872,7 +876,7 @@ var getDataFromHtml = function getDataFromHtml(html, containers) {
872
876
  exports.default = getDataFromHtml;
873
877
 
874
878
  /***/ }),
875
- /* 11 */
879
+ /* 10 */
876
880
  /***/ (function(module, exports, __webpack_require__) {
877
881
 
878
882
  "use strict";
@@ -919,7 +923,7 @@ var fetch = function fetch(setOptions) {
919
923
  exports.default = fetch;
920
924
 
921
925
  /***/ }),
922
- /* 12 */
926
+ /* 11 */
923
927
  /***/ (function(module, exports, __webpack_require__) {
924
928
 
925
929
  "use strict";
@@ -950,7 +954,7 @@ var transitionEnd = function transitionEnd() {
950
954
  exports.default = transitionEnd;
951
955
 
952
956
  /***/ }),
953
- /* 13 */
957
+ /* 12 */
954
958
  /***/ (function(module, exports, __webpack_require__) {
955
959
 
956
960
  "use strict";
@@ -966,7 +970,7 @@ var getCurrentUrl = function getCurrentUrl() {
966
970
  exports.default = getCurrentUrl;
967
971
 
968
972
  /***/ }),
969
- /* 14 */
973
+ /* 13 */
970
974
  /***/ (function(module, exports, __webpack_require__) {
971
975
 
972
976
  "use strict";
@@ -1000,7 +1004,7 @@ var markSwupElements = function markSwupElements(element, containers) {
1000
1004
  exports.default = markSwupElements;
1001
1005
 
1002
1006
  /***/ }),
1003
- /* 15 */
1007
+ /* 14 */
1004
1008
  /***/ (function(module, exports, __webpack_require__) {
1005
1009
 
1006
1010
  "use strict";
@@ -1062,7 +1066,7 @@ var Link = function () {
1062
1066
  exports.default = Link;
1063
1067
 
1064
1068
  /***/ }),
1065
- /* 16 */
1069
+ /* 15 */
1066
1070
  /***/ (function(module, exports, __webpack_require__) {
1067
1071
 
1068
1072
  "use strict";
@@ -1151,7 +1155,7 @@ var renderPage = function renderPage(page, popstate) {
1151
1155
  exports.default = renderPage;
1152
1156
 
1153
1157
  /***/ }),
1154
- /* 17 */
1158
+ /* 16 */
1155
1159
  /***/ (function(module, exports, __webpack_require__) {
1156
1160
 
1157
1161
  "use strict";
@@ -1178,7 +1182,7 @@ var triggerEvent = function triggerEvent(eventName, originalEvent) {
1178
1182
  exports.default = triggerEvent;
1179
1183
 
1180
1184
  /***/ }),
1181
- /* 18 */
1185
+ /* 17 */
1182
1186
  /***/ (function(module, exports, __webpack_require__) {
1183
1187
 
1184
1188
  "use strict";
@@ -1198,7 +1202,7 @@ var on = function on(event, handler) {
1198
1202
  exports.default = on;
1199
1203
 
1200
1204
  /***/ }),
1201
- /* 19 */
1205
+ /* 18 */
1202
1206
  /***/ (function(module, exports, __webpack_require__) {
1203
1207
 
1204
1208
  "use strict";
@@ -1238,7 +1242,7 @@ var off = function off(event, handler) {
1238
1242
  exports.default = off;
1239
1243
 
1240
1244
  /***/ }),
1241
- /* 20 */
1245
+ /* 19 */
1242
1246
  /***/ (function(module, exports, __webpack_require__) {
1243
1247
 
1244
1248
  "use strict";
@@ -1259,7 +1263,7 @@ var updateTransition = function updateTransition(from, to, custom) {
1259
1263
  exports.default = updateTransition;
1260
1264
 
1261
1265
  /***/ }),
1262
- /* 21 */
1266
+ /* 20 */
1263
1267
  /***/ (function(module, exports, __webpack_require__) {
1264
1268
 
1265
1269
  "use strict";
@@ -1292,7 +1296,7 @@ var getAnimationPromises = function getAnimationPromises() {
1292
1296
  exports.default = getAnimationPromises;
1293
1297
 
1294
1298
  /***/ }),
1295
- /* 22 */
1299
+ /* 21 */
1296
1300
  /***/ (function(module, exports, __webpack_require__) {
1297
1301
 
1298
1302
  "use strict";
@@ -1324,7 +1328,7 @@ var getPageData = function getPageData(request) {
1324
1328
  exports.default = getPageData;
1325
1329
 
1326
1330
  /***/ }),
1327
- /* 23 */
1331
+ /* 22 */
1328
1332
  /***/ (function(module, exports, __webpack_require__) {
1329
1333
 
1330
1334
  "use strict";
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});t.Link=t.markSwupElements=t.getCurrentUrl=t.transitionEnd=t.fetch=t.getDataFromHtml=t.createHistoryRecord=t.classify=undefined;var r=n(8);var i=w(r);var a=n(9);var o=w(a);var s=n(10);var u=w(s);var l=n(11);var c=w(l);var f=n(12);var d=w(f);var h=n(13);var p=w(h);var v=n(14);var g=w(v);var m=n(15);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";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))}},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=M(a);var s=n(6);var u=M(s);var l=n(7);var c=M(l);var f=n(16);var d=M(f);var h=n(17);var p=M(h);var v=n(18);var g=M(v);var m=n(19);var y=M(m);var w=n(20);var b=M(w);var E=n(21);var P=M(E);var _=n(22);var k=M(_);var S=n(23);var O=n(1);var j=n(0);function M(e){return e&&e.__esModule?e:{default:e}}function H(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var L=function(){function e(t){H(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=P.default;this.getPageData=k.default;this.log=function(){};this.use=S.use;this.unuse=S.unuse;this.findPlugin=S.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,j.getDataFromHtml)(document.documentElement.outerHTML,this.options.containers);n.url=n.responseURL=(0,j.getCurrentUrl)();if(this.options.cache){this.cache.cacheUrl(n)}(0,j.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,O.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 j.Link(t.delegateTarget);if(n.getAddress()==(0,j.getCurrentUrl)()||n.getAddress()==""){if(n.getHash()!=""){this.triggerEvent("samePageWithHash",t);var r=document.querySelector(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 j.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=L},function(e,t,n){var r=n(5);function i(e,t,n,r,i){var o=a.apply(this,arguments);e.addEventListener(n,o,i);return{destroy:function(){e.removeEventListener(n,o,i)}}}function a(e,t,n,i){return function(n){n.delegateTarget=r(n.target,t);if(n.delegateTarget){i.call(e,n)}}}e.exports=i},function(e,t){var n=9;if(typeof Element!=="undefined"&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}function i(e,t){while(e&&e.nodeType!==n){if(typeof e.matches==="function"&&e.matches(t)){return e}e=e.parentNode}}e.exports=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=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(0);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(1);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(1);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(1);var a=n(0);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(1);var i=n(0);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(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("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=2)}([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";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))}},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=H(a);var s=n(5);var u=H(s);var l=n(6);var c=H(l);var f=n(15);var d=H(f);var h=n(16);var p=H(h);var v=n(17);var g=H(v);var m=n(18);var y=H(m);var w=n(19);var b=H(w);var E=n(20);var P=H(E);var _=n(21);var k=H(_);var S=n(22);var O=n(1);var j=n(0);function H(e){return e&&e.__esModule?e:{default:e}}function M(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var L=function(){function e(t){M(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=P.default;this.getPageData=k.default;this.log=function(){};this.use=S.use;this.unuse=S.unuse;this.findPlugin=S.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,j.getDataFromHtml)(document.documentElement.outerHTML,this.options.containers);n.url=n.responseURL=(0,j.getCurrentUrl)();if(this.options.cache){this.cache.cacheUrl(n)}(0,j.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,O.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 j.Link(t.delegateTarget);if(n.getAddress()==(0,j.getCurrentUrl)()||n.getAddress()==""){if(n.getHash()!=""){this.triggerEvent("samePageWithHash",t);var r=document.querySelector(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 j.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=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});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(0);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(1);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(1);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(1);var a=n(0);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(1);var i=n(0);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(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("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})}}])});
package/lib/index.js CHANGED
@@ -11,9 +11,9 @@ var _createClass = function () { function defineProperties(target, props) { for
11
11
  // modules
12
12
 
13
13
 
14
- var _delegate = require('delegate');
14
+ var _delegateIt = require('delegate-it');
15
15
 
16
- var _delegate2 = _interopRequireDefault(_delegate);
16
+ var _delegateIt2 = _interopRequireDefault(_delegateIt);
17
17
 
18
18
  var _Cache = require('./modules/Cache');
19
19
 
@@ -156,7 +156,7 @@ var Swup = function () {
156
156
  }
157
157
 
158
158
  // add event listeners
159
- this.delegatedListeners.click = (0, _delegate2.default)(document, this.options.linkSelector, 'click', this.linkClickHandler.bind(this));
159
+ this.delegatedListeners.click = (0, _delegateIt2.default)(document, this.options.linkSelector, 'click', this.linkClickHandler.bind(this));
160
160
  window.addEventListener('popstate', this.boundPopStateHandler);
161
161
 
162
162
  // initial save to cache
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swup",
3
- "version": "2.0.14",
3
+ "version": "2.0.15",
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": {
@@ -9,8 +9,8 @@
9
9
  "build": "webpack-cli",
10
10
  "prepublish": "npm run compile && npm run build",
11
11
  "postinstall": "opencollective-postinstall || true",
12
- "test": "npm run build && npm run test:instrument-swup && start-server-and-test test:server http://localhost:8080 test:run",
13
- "test:instrument-swup": "nyc instrument --compact=false dist test/site",
12
+ "test": "npm run build && npm run test:instrument && start-server-and-test test:server http://localhost:8080 test:run",
13
+ "test:instrument": "nyc instrument --compact=false dist test/site/swup",
14
14
  "test:server": "http-server test/site",
15
15
  "test:run": "cypress run --record"
16
16
  },
@@ -27,23 +27,23 @@
27
27
  "transition"
28
28
  ],
29
29
  "dependencies": {
30
- "delegate": "3.1.3",
30
+ "delegate-it": "^3.0.1",
31
31
  "opencollective-postinstall": "^2.0.2"
32
32
  },
33
33
  "devDependencies": {
34
- "@cypress/code-coverage": "^1.10.1",
34
+ "@cypress/code-coverage": "^3.10.0",
35
35
  "@swup/prettier-config": "^1.0.0",
36
36
  "@swup/webpack-config": "^1.0.0",
37
37
  "babel-cli": "^6.26.0",
38
38
  "babel-loader": "^7.1.4",
39
39
  "babel-preset-es2015": "^6.24.1",
40
40
  "babel-preset-stage-0": "^6.24.1",
41
- "cypress": "^3.6.0",
42
- "http-server": "^0.11.1",
43
- "istanbul-lib-coverage": "^2.0.5",
44
- "nyc": "^14.1.1",
41
+ "cypress": "^10.0.2",
42
+ "http-server": "^14.1.1",
43
+ "istanbul-lib-coverage": "^3.2.0",
44
+ "nyc": "^15.1.0",
45
45
  "prettier": "1.17.0",
46
- "start-server-and-test": "^1.10.6",
46
+ "start-server-and-test": "^1.14.0",
47
47
  "uglifyjs-webpack-plugin": "^1.2.5",
48
48
  "webpack": "^4.8.3",
49
49
  "webpack-cli": "^3.3.2"
package/readme.md CHANGED
@@ -1,3 +1,7 @@
1
+ <h3 align="center"><a href="https://github.com/swup/swup/discussions/424">We're looking for maintainers!</a></h3>
2
+
3
+ ---
4
+
1
5
  <p align="center"><img width="420" alt="swup" src="https://swup.js.org/assets/images/swup-logo.svg"></p>
2
6
  <p align="center">
3
7
  Complete, flexible, extensible and easy to use page transition library for your static web.