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.
- package/cypress.config.js +13 -0
- package/dist/swup.js +119 -115
- package/dist/swup.min.js +1 -1
- package/lib/index.js +3 -3
- package/package.json +10 -10
- package/readme.md +4 -0
|
@@ -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__(
|
|
109
|
+
var _classify = __webpack_require__(7);
|
|
110
110
|
|
|
111
111
|
var _classify2 = _interopRequireDefault(_classify);
|
|
112
112
|
|
|
113
|
-
var _createHistoryRecord = __webpack_require__(
|
|
113
|
+
var _createHistoryRecord = __webpack_require__(8);
|
|
114
114
|
|
|
115
115
|
var _createHistoryRecord2 = _interopRequireDefault(_createHistoryRecord);
|
|
116
116
|
|
|
117
|
-
var _getDataFromHtml = __webpack_require__(
|
|
117
|
+
var _getDataFromHtml = __webpack_require__(9);
|
|
118
118
|
|
|
119
119
|
var _getDataFromHtml2 = _interopRequireDefault(_getDataFromHtml);
|
|
120
120
|
|
|
121
|
-
var _fetch = __webpack_require__(
|
|
121
|
+
var _fetch = __webpack_require__(10);
|
|
122
122
|
|
|
123
123
|
var _fetch2 = _interopRequireDefault(_fetch);
|
|
124
124
|
|
|
125
|
-
var _transitionEnd = __webpack_require__(
|
|
125
|
+
var _transitionEnd = __webpack_require__(11);
|
|
126
126
|
|
|
127
127
|
var _transitionEnd2 = _interopRequireDefault(_transitionEnd);
|
|
128
128
|
|
|
129
|
-
var _getCurrentUrl = __webpack_require__(
|
|
129
|
+
var _getCurrentUrl = __webpack_require__(12);
|
|
130
130
|
|
|
131
131
|
var _getCurrentUrl2 = _interopRequireDefault(_getCurrentUrl);
|
|
132
132
|
|
|
133
|
-
var _markSwupElements = __webpack_require__(
|
|
133
|
+
var _markSwupElements = __webpack_require__(13);
|
|
134
134
|
|
|
135
135
|
var _markSwupElements2 = _interopRequireDefault(_markSwupElements);
|
|
136
136
|
|
|
137
|
-
var _Link = __webpack_require__(
|
|
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
|
|
215
|
+
var _delegateIt = __webpack_require__(4);
|
|
216
216
|
|
|
217
|
-
var
|
|
217
|
+
var _delegateIt2 = _interopRequireDefault(_delegateIt);
|
|
218
218
|
|
|
219
|
-
var _Cache = __webpack_require__(
|
|
219
|
+
var _Cache = __webpack_require__(5);
|
|
220
220
|
|
|
221
221
|
var _Cache2 = _interopRequireDefault(_Cache);
|
|
222
222
|
|
|
223
|
-
var _loadPage = __webpack_require__(
|
|
223
|
+
var _loadPage = __webpack_require__(6);
|
|
224
224
|
|
|
225
225
|
var _loadPage2 = _interopRequireDefault(_loadPage);
|
|
226
226
|
|
|
227
|
-
var _renderPage = __webpack_require__(
|
|
227
|
+
var _renderPage = __webpack_require__(15);
|
|
228
228
|
|
|
229
229
|
var _renderPage2 = _interopRequireDefault(_renderPage);
|
|
230
230
|
|
|
231
|
-
var _triggerEvent = __webpack_require__(
|
|
231
|
+
var _triggerEvent = __webpack_require__(16);
|
|
232
232
|
|
|
233
233
|
var _triggerEvent2 = _interopRequireDefault(_triggerEvent);
|
|
234
234
|
|
|
235
|
-
var _on = __webpack_require__(
|
|
235
|
+
var _on = __webpack_require__(17);
|
|
236
236
|
|
|
237
237
|
var _on2 = _interopRequireDefault(_on);
|
|
238
238
|
|
|
239
|
-
var _off = __webpack_require__(
|
|
239
|
+
var _off = __webpack_require__(18);
|
|
240
240
|
|
|
241
241
|
var _off2 = _interopRequireDefault(_off);
|
|
242
242
|
|
|
243
|
-
var _updateTransition = __webpack_require__(
|
|
243
|
+
var _updateTransition = __webpack_require__(19);
|
|
244
244
|
|
|
245
245
|
var _updateTransition2 = _interopRequireDefault(_updateTransition);
|
|
246
246
|
|
|
247
|
-
var _getAnimationPromises = __webpack_require__(
|
|
247
|
+
var _getAnimationPromises = __webpack_require__(20);
|
|
248
248
|
|
|
249
249
|
var _getAnimationPromises2 = _interopRequireDefault(_getAnimationPromises);
|
|
250
250
|
|
|
251
|
-
var _getPageData = __webpack_require__(
|
|
251
|
+
var _getPageData = __webpack_require__(21);
|
|
252
252
|
|
|
253
253
|
var _getPageData2 = _interopRequireDefault(_getPageData);
|
|
254
254
|
|
|
255
|
-
var _plugins = __webpack_require__(
|
|
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,
|
|
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,
|
|
497
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
498
498
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
/**
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
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
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
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
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
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
|
-
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
|
14
|
+
var _delegateIt = require('delegate-it');
|
|
15
15
|
|
|
16
|
-
var
|
|
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,
|
|
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.
|
|
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
|
|
13
|
-
"test:instrument
|
|
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
|
|
30
|
+
"delegate-it": "^3.0.1",
|
|
31
31
|
"opencollective-postinstall": "^2.0.2"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@cypress/code-coverage": "^
|
|
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": "^
|
|
42
|
-
"http-server": "^
|
|
43
|
-
"istanbul-lib-coverage": "^2.0
|
|
44
|
-
"nyc": "^
|
|
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.
|
|
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.
|