swup 2.0.13 → 2.0.16
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 +199 -151
- package/dist/swup.min.js +1 -1
- package/lib/index.js +10 -5
- package/lib/modules/getAnchorElement.js +25 -0
- package/lib/utils/index.js +8 -0
- package/package.json +10 -10
- package/readme.md +24 -18
|
@@ -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
|
@@ -101,40 +101,78 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
|
101
101
|
"use strict";
|
|
102
102
|
|
|
103
103
|
|
|
104
|
+
Object.defineProperty(exports, "__esModule", {
|
|
105
|
+
value: true
|
|
106
|
+
});
|
|
107
|
+
var query = exports.query = function query(selector) {
|
|
108
|
+
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
|
|
109
|
+
|
|
110
|
+
if (typeof selector !== 'string') {
|
|
111
|
+
return selector;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return context.querySelector(selector);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
var queryAll = exports.queryAll = function queryAll(selector) {
|
|
118
|
+
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
|
|
119
|
+
|
|
120
|
+
if (typeof selector !== 'string') {
|
|
121
|
+
return selector;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return Array.prototype.slice.call(context.querySelectorAll(selector));
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var escapeCssIdentifier = exports.escapeCssIdentifier = function escapeCssIdentifier(ident) {
|
|
128
|
+
if (window.CSS && window.CSS.escape) {
|
|
129
|
+
return CSS.escape(ident);
|
|
130
|
+
} else {
|
|
131
|
+
return ident;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/***/ }),
|
|
136
|
+
/* 1 */
|
|
137
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
138
|
+
|
|
139
|
+
"use strict";
|
|
140
|
+
|
|
141
|
+
|
|
104
142
|
Object.defineProperty(exports, "__esModule", {
|
|
105
143
|
value: true
|
|
106
144
|
});
|
|
107
145
|
exports.Link = exports.markSwupElements = exports.getCurrentUrl = exports.transitionEnd = exports.fetch = exports.getDataFromHtml = exports.createHistoryRecord = exports.classify = undefined;
|
|
108
146
|
|
|
109
|
-
var _classify = __webpack_require__(
|
|
147
|
+
var _classify = __webpack_require__(7);
|
|
110
148
|
|
|
111
149
|
var _classify2 = _interopRequireDefault(_classify);
|
|
112
150
|
|
|
113
|
-
var _createHistoryRecord = __webpack_require__(
|
|
151
|
+
var _createHistoryRecord = __webpack_require__(8);
|
|
114
152
|
|
|
115
153
|
var _createHistoryRecord2 = _interopRequireDefault(_createHistoryRecord);
|
|
116
154
|
|
|
117
|
-
var _getDataFromHtml = __webpack_require__(
|
|
155
|
+
var _getDataFromHtml = __webpack_require__(9);
|
|
118
156
|
|
|
119
157
|
var _getDataFromHtml2 = _interopRequireDefault(_getDataFromHtml);
|
|
120
158
|
|
|
121
|
-
var _fetch = __webpack_require__(
|
|
159
|
+
var _fetch = __webpack_require__(10);
|
|
122
160
|
|
|
123
161
|
var _fetch2 = _interopRequireDefault(_fetch);
|
|
124
162
|
|
|
125
|
-
var _transitionEnd = __webpack_require__(
|
|
163
|
+
var _transitionEnd = __webpack_require__(11);
|
|
126
164
|
|
|
127
165
|
var _transitionEnd2 = _interopRequireDefault(_transitionEnd);
|
|
128
166
|
|
|
129
|
-
var _getCurrentUrl = __webpack_require__(
|
|
167
|
+
var _getCurrentUrl = __webpack_require__(12);
|
|
130
168
|
|
|
131
169
|
var _getCurrentUrl2 = _interopRequireDefault(_getCurrentUrl);
|
|
132
170
|
|
|
133
|
-
var _markSwupElements = __webpack_require__(
|
|
171
|
+
var _markSwupElements = __webpack_require__(13);
|
|
134
172
|
|
|
135
173
|
var _markSwupElements2 = _interopRequireDefault(_markSwupElements);
|
|
136
174
|
|
|
137
|
-
var _Link = __webpack_require__(
|
|
175
|
+
var _Link = __webpack_require__(14);
|
|
138
176
|
|
|
139
177
|
var _Link2 = _interopRequireDefault(_Link);
|
|
140
178
|
|
|
@@ -149,36 +187,6 @@ var getCurrentUrl = exports.getCurrentUrl = _getCurrentUrl2.default;
|
|
|
149
187
|
var markSwupElements = exports.markSwupElements = _markSwupElements2.default;
|
|
150
188
|
var Link = exports.Link = _Link2.default;
|
|
151
189
|
|
|
152
|
-
/***/ }),
|
|
153
|
-
/* 1 */
|
|
154
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
155
|
-
|
|
156
|
-
"use strict";
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
Object.defineProperty(exports, "__esModule", {
|
|
160
|
-
value: true
|
|
161
|
-
});
|
|
162
|
-
var query = exports.query = function query(selector) {
|
|
163
|
-
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
|
|
164
|
-
|
|
165
|
-
if (typeof selector !== 'string') {
|
|
166
|
-
return selector;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
return context.querySelector(selector);
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
var queryAll = exports.queryAll = function queryAll(selector) {
|
|
173
|
-
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
|
|
174
|
-
|
|
175
|
-
if (typeof selector !== 'string') {
|
|
176
|
-
return selector;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
return Array.prototype.slice.call(context.querySelectorAll(selector));
|
|
180
|
-
};
|
|
181
|
-
|
|
182
190
|
/***/ }),
|
|
183
191
|
/* 2 */
|
|
184
192
|
/***/ (function(module, exports, __webpack_require__) {
|
|
@@ -212,38 +220,42 @@ var _createClass = function () { function defineProperties(target, props) { for
|
|
|
212
220
|
// modules
|
|
213
221
|
|
|
214
222
|
|
|
215
|
-
var
|
|
223
|
+
var _delegateIt = __webpack_require__(4);
|
|
216
224
|
|
|
217
|
-
var
|
|
225
|
+
var _delegateIt2 = _interopRequireDefault(_delegateIt);
|
|
218
226
|
|
|
219
|
-
var _Cache = __webpack_require__(
|
|
227
|
+
var _Cache = __webpack_require__(5);
|
|
220
228
|
|
|
221
229
|
var _Cache2 = _interopRequireDefault(_Cache);
|
|
222
230
|
|
|
223
|
-
var _loadPage = __webpack_require__(
|
|
231
|
+
var _loadPage = __webpack_require__(6);
|
|
224
232
|
|
|
225
233
|
var _loadPage2 = _interopRequireDefault(_loadPage);
|
|
226
234
|
|
|
227
|
-
var _renderPage = __webpack_require__(
|
|
235
|
+
var _renderPage = __webpack_require__(15);
|
|
228
236
|
|
|
229
237
|
var _renderPage2 = _interopRequireDefault(_renderPage);
|
|
230
238
|
|
|
231
|
-
var _triggerEvent = __webpack_require__(
|
|
239
|
+
var _triggerEvent = __webpack_require__(16);
|
|
232
240
|
|
|
233
241
|
var _triggerEvent2 = _interopRequireDefault(_triggerEvent);
|
|
234
242
|
|
|
235
|
-
var _on = __webpack_require__(
|
|
243
|
+
var _on = __webpack_require__(17);
|
|
236
244
|
|
|
237
245
|
var _on2 = _interopRequireDefault(_on);
|
|
238
246
|
|
|
239
|
-
var _off = __webpack_require__(
|
|
247
|
+
var _off = __webpack_require__(18);
|
|
240
248
|
|
|
241
249
|
var _off2 = _interopRequireDefault(_off);
|
|
242
250
|
|
|
243
|
-
var _updateTransition = __webpack_require__(
|
|
251
|
+
var _updateTransition = __webpack_require__(19);
|
|
244
252
|
|
|
245
253
|
var _updateTransition2 = _interopRequireDefault(_updateTransition);
|
|
246
254
|
|
|
255
|
+
var _getAnchorElement = __webpack_require__(20);
|
|
256
|
+
|
|
257
|
+
var _getAnchorElement2 = _interopRequireDefault(_getAnchorElement);
|
|
258
|
+
|
|
247
259
|
var _getAnimationPromises = __webpack_require__(21);
|
|
248
260
|
|
|
249
261
|
var _getAnimationPromises2 = _interopRequireDefault(_getAnimationPromises);
|
|
@@ -254,9 +266,9 @@ var _getPageData2 = _interopRequireDefault(_getPageData);
|
|
|
254
266
|
|
|
255
267
|
var _plugins = __webpack_require__(23);
|
|
256
268
|
|
|
257
|
-
var _utils = __webpack_require__(
|
|
269
|
+
var _utils = __webpack_require__(0);
|
|
258
270
|
|
|
259
|
-
var _helpers = __webpack_require__(
|
|
271
|
+
var _helpers = __webpack_require__(1);
|
|
260
272
|
|
|
261
273
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
262
274
|
|
|
@@ -310,7 +322,7 @@ var Swup = function () {
|
|
|
310
322
|
willReplaceContent: []
|
|
311
323
|
};
|
|
312
324
|
|
|
313
|
-
// variable for
|
|
325
|
+
// variable for anchor to scroll to after render
|
|
314
326
|
this.scrollToElement = null;
|
|
315
327
|
// variable for promise used for preload, so no new loading of the same page starts while page is loading
|
|
316
328
|
this.preloadPromise = null;
|
|
@@ -336,6 +348,7 @@ var Swup = function () {
|
|
|
336
348
|
this.updateTransition = _updateTransition2.default;
|
|
337
349
|
this.getAnimationPromises = _getAnimationPromises2.default;
|
|
338
350
|
this.getPageData = _getPageData2.default;
|
|
351
|
+
this.getAnchorElement = _getAnchorElement2.default;
|
|
339
352
|
this.log = function () {}; // here so it can be used by plugins
|
|
340
353
|
this.use = _plugins.use;
|
|
341
354
|
this.unuse = _plugins.unuse;
|
|
@@ -357,7 +370,7 @@ var Swup = function () {
|
|
|
357
370
|
}
|
|
358
371
|
|
|
359
372
|
// add event listeners
|
|
360
|
-
this.delegatedListeners.click = (0,
|
|
373
|
+
this.delegatedListeners.click = (0, _delegateIt2.default)(document, this.options.linkSelector, 'click', this.linkClickHandler.bind(this));
|
|
361
374
|
window.addEventListener('popstate', this.boundPopStateHandler);
|
|
362
375
|
|
|
363
376
|
// initial save to cache
|
|
@@ -439,7 +452,7 @@ var Swup = function () {
|
|
|
439
452
|
if (link.getHash() != '') {
|
|
440
453
|
// link to the same URL with hash
|
|
441
454
|
this.triggerEvent('samePageWithHash', event);
|
|
442
|
-
var element =
|
|
455
|
+
var element = (0, _getAnchorElement2.default)(link.getHash());
|
|
443
456
|
if (element != null) {
|
|
444
457
|
history.replaceState({
|
|
445
458
|
url: link.getAddress() + link.getHash(),
|
|
@@ -494,95 +507,99 @@ exports.default = Swup;
|
|
|
494
507
|
|
|
495
508
|
/***/ }),
|
|
496
509
|
/* 4 */
|
|
497
|
-
/***/ (function(module,
|
|
510
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
498
511
|
|
|
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
|
-
}
|
|
512
|
+
"use strict";
|
|
513
|
+
__webpack_require__.r(__webpack_exports__);
|
|
514
|
+
/** Keeps track of raw listeners added to the base elements to avoid duplication */
|
|
515
|
+
const ledger = new WeakMap();
|
|
516
|
+
function editLedger(wanted, baseElement, callback, setup) {
|
|
517
|
+
var _a, _b;
|
|
518
|
+
if (!wanted && !ledger.has(baseElement)) {
|
|
519
|
+
return false;
|
|
520
|
+
}
|
|
521
|
+
const elementMap = (_a = ledger.get(baseElement)) !== null && _a !== void 0 ? _a : new WeakMap();
|
|
522
|
+
ledger.set(baseElement, elementMap);
|
|
523
|
+
if (!wanted && !ledger.has(baseElement)) {
|
|
524
|
+
return false;
|
|
520
525
|
}
|
|
526
|
+
const setups = (_b = elementMap.get(callback)) !== null && _b !== void 0 ? _b : new Set();
|
|
527
|
+
elementMap.set(callback, setups);
|
|
528
|
+
const existed = setups.has(setup);
|
|
529
|
+
if (wanted) {
|
|
530
|
+
setups.add(setup);
|
|
531
|
+
}
|
|
532
|
+
else {
|
|
533
|
+
setups.delete(setup);
|
|
534
|
+
}
|
|
535
|
+
return existed && wanted;
|
|
521
536
|
}
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
if (e.delegateTarget) {
|
|
537
|
-
callback.call(element, e);
|
|
537
|
+
function isEventTarget(elements) {
|
|
538
|
+
return typeof elements.addEventListener === 'function';
|
|
539
|
+
}
|
|
540
|
+
function safeClosest(event, selector) {
|
|
541
|
+
let target = event.target;
|
|
542
|
+
if (target instanceof Text) {
|
|
543
|
+
target = target.parentElement;
|
|
544
|
+
}
|
|
545
|
+
if (target instanceof Element && event.currentTarget instanceof Element) {
|
|
546
|
+
// `.closest()` may match ancestors of `currentTarget` but we only need its children
|
|
547
|
+
const closest = target.closest(selector);
|
|
548
|
+
if (closest && event.currentTarget.contains(closest)) {
|
|
549
|
+
return closest;
|
|
538
550
|
}
|
|
539
551
|
}
|
|
540
552
|
}
|
|
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;
|
|
553
|
+
// This type isn't exported as a declaration, so it needs to be duplicated above
|
|
554
|
+
function delegate(base, selector, type, callback, options) {
|
|
555
|
+
// Handle Selector-based usage
|
|
556
|
+
if (typeof base === 'string') {
|
|
557
|
+
base = document.querySelectorAll(base);
|
|
558
|
+
}
|
|
559
|
+
// Handle Array-like based usage
|
|
560
|
+
if (!isEventTarget(base)) {
|
|
561
|
+
const subscriptions = Array.prototype.map.call(base, (element) => delegate(element, selector, type, callback, options));
|
|
562
|
+
return {
|
|
563
|
+
destroy() {
|
|
564
|
+
for (const subscription of subscriptions) {
|
|
565
|
+
subscription.destroy();
|
|
566
|
+
}
|
|
567
|
+
},
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
// `document` should never be the base, it's just an easy way to define "global event listeners"
|
|
571
|
+
const baseElement = base instanceof Document ? base.documentElement : base;
|
|
572
|
+
// Handle the regular Element usage
|
|
573
|
+
const capture = Boolean(typeof options === 'object' ? options.capture : options);
|
|
574
|
+
const listenerFn = (event) => {
|
|
575
|
+
const delegateTarget = safeClosest(event, selector);
|
|
576
|
+
if (delegateTarget) {
|
|
577
|
+
event.delegateTarget = delegateTarget;
|
|
578
|
+
callback.call(baseElement, event);
|
|
576
579
|
}
|
|
577
|
-
|
|
580
|
+
};
|
|
581
|
+
// Drop unsupported `once` option https://github.com/fregante/delegate-it/pull/28#discussion_r863467939
|
|
582
|
+
if (typeof options === 'object') {
|
|
583
|
+
delete options.once;
|
|
584
|
+
}
|
|
585
|
+
const setup = JSON.stringify({ selector, type, capture });
|
|
586
|
+
const isAlreadyListening = editLedger(true, baseElement, callback, setup);
|
|
587
|
+
const delegateSubscription = {
|
|
588
|
+
destroy() {
|
|
589
|
+
baseElement.removeEventListener(type, listenerFn, options);
|
|
590
|
+
editLedger(false, baseElement, callback, setup);
|
|
591
|
+
},
|
|
592
|
+
};
|
|
593
|
+
if (!isAlreadyListening) {
|
|
594
|
+
baseElement.addEventListener(type, listenerFn, options);
|
|
578
595
|
}
|
|
596
|
+
return delegateSubscription;
|
|
579
597
|
}
|
|
580
|
-
|
|
581
|
-
module.exports = closest;
|
|
598
|
+
/* harmony default export */ __webpack_exports__["default"] = (delegate);
|
|
582
599
|
|
|
583
600
|
|
|
584
601
|
/***/ }),
|
|
585
|
-
/*
|
|
602
|
+
/* 5 */
|
|
586
603
|
/***/ (function(module, exports, __webpack_require__) {
|
|
587
604
|
|
|
588
605
|
"use strict";
|
|
@@ -648,7 +665,7 @@ var Cache = exports.Cache = function () {
|
|
|
648
665
|
exports.default = Cache;
|
|
649
666
|
|
|
650
667
|
/***/ }),
|
|
651
|
-
/*
|
|
668
|
+
/* 6 */
|
|
652
669
|
/***/ (function(module, exports, __webpack_require__) {
|
|
653
670
|
|
|
654
671
|
"use strict";
|
|
@@ -660,7 +677,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
660
677
|
|
|
661
678
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
662
679
|
|
|
663
|
-
var _helpers = __webpack_require__(
|
|
680
|
+
var _helpers = __webpack_require__(1);
|
|
664
681
|
|
|
665
682
|
var loadPage = function loadPage(data, popstate) {
|
|
666
683
|
var _this = this;
|
|
@@ -772,7 +789,7 @@ var loadPage = function loadPage(data, popstate) {
|
|
|
772
789
|
exports.default = loadPage;
|
|
773
790
|
|
|
774
791
|
/***/ }),
|
|
775
|
-
/*
|
|
792
|
+
/* 7 */
|
|
776
793
|
/***/ (function(module, exports, __webpack_require__) {
|
|
777
794
|
|
|
778
795
|
"use strict";
|
|
@@ -796,7 +813,7 @@ var classify = function classify(text) {
|
|
|
796
813
|
exports.default = classify;
|
|
797
814
|
|
|
798
815
|
/***/ }),
|
|
799
|
-
/*
|
|
816
|
+
/* 8 */
|
|
800
817
|
/***/ (function(module, exports, __webpack_require__) {
|
|
801
818
|
|
|
802
819
|
"use strict";
|
|
@@ -816,7 +833,7 @@ var createHistoryRecord = function createHistoryRecord(url) {
|
|
|
816
833
|
exports.default = createHistoryRecord;
|
|
817
834
|
|
|
818
835
|
/***/ }),
|
|
819
|
-
/*
|
|
836
|
+
/* 9 */
|
|
820
837
|
/***/ (function(module, exports, __webpack_require__) {
|
|
821
838
|
|
|
822
839
|
"use strict";
|
|
@@ -828,7 +845,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
828
845
|
|
|
829
846
|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
830
847
|
|
|
831
|
-
var _utils = __webpack_require__(
|
|
848
|
+
var _utils = __webpack_require__(0);
|
|
832
849
|
|
|
833
850
|
var getDataFromHtml = function getDataFromHtml(html, containers) {
|
|
834
851
|
var fakeDom = document.createElement('html');
|
|
@@ -872,7 +889,7 @@ var getDataFromHtml = function getDataFromHtml(html, containers) {
|
|
|
872
889
|
exports.default = getDataFromHtml;
|
|
873
890
|
|
|
874
891
|
/***/ }),
|
|
875
|
-
/*
|
|
892
|
+
/* 10 */
|
|
876
893
|
/***/ (function(module, exports, __webpack_require__) {
|
|
877
894
|
|
|
878
895
|
"use strict";
|
|
@@ -919,7 +936,7 @@ var fetch = function fetch(setOptions) {
|
|
|
919
936
|
exports.default = fetch;
|
|
920
937
|
|
|
921
938
|
/***/ }),
|
|
922
|
-
/*
|
|
939
|
+
/* 11 */
|
|
923
940
|
/***/ (function(module, exports, __webpack_require__) {
|
|
924
941
|
|
|
925
942
|
"use strict";
|
|
@@ -950,7 +967,7 @@ var transitionEnd = function transitionEnd() {
|
|
|
950
967
|
exports.default = transitionEnd;
|
|
951
968
|
|
|
952
969
|
/***/ }),
|
|
953
|
-
/*
|
|
970
|
+
/* 12 */
|
|
954
971
|
/***/ (function(module, exports, __webpack_require__) {
|
|
955
972
|
|
|
956
973
|
"use strict";
|
|
@@ -966,7 +983,7 @@ var getCurrentUrl = function getCurrentUrl() {
|
|
|
966
983
|
exports.default = getCurrentUrl;
|
|
967
984
|
|
|
968
985
|
/***/ }),
|
|
969
|
-
/*
|
|
986
|
+
/* 13 */
|
|
970
987
|
/***/ (function(module, exports, __webpack_require__) {
|
|
971
988
|
|
|
972
989
|
"use strict";
|
|
@@ -976,7 +993,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
976
993
|
value: true
|
|
977
994
|
});
|
|
978
995
|
|
|
979
|
-
var _utils = __webpack_require__(
|
|
996
|
+
var _utils = __webpack_require__(0);
|
|
980
997
|
|
|
981
998
|
var markSwupElements = function markSwupElements(element, containers) {
|
|
982
999
|
var blocks = 0;
|
|
@@ -1000,7 +1017,7 @@ var markSwupElements = function markSwupElements(element, containers) {
|
|
|
1000
1017
|
exports.default = markSwupElements;
|
|
1001
1018
|
|
|
1002
1019
|
/***/ }),
|
|
1003
|
-
/*
|
|
1020
|
+
/* 14 */
|
|
1004
1021
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1005
1022
|
|
|
1006
1023
|
"use strict";
|
|
@@ -1062,7 +1079,7 @@ var Link = function () {
|
|
|
1062
1079
|
exports.default = Link;
|
|
1063
1080
|
|
|
1064
1081
|
/***/ }),
|
|
1065
|
-
/*
|
|
1082
|
+
/* 15 */
|
|
1066
1083
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1067
1084
|
|
|
1068
1085
|
"use strict";
|
|
@@ -1074,9 +1091,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
1074
1091
|
|
|
1075
1092
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
1076
1093
|
|
|
1077
|
-
var _utils = __webpack_require__(
|
|
1094
|
+
var _utils = __webpack_require__(0);
|
|
1078
1095
|
|
|
1079
|
-
var _helpers = __webpack_require__(
|
|
1096
|
+
var _helpers = __webpack_require__(1);
|
|
1080
1097
|
|
|
1081
1098
|
var renderPage = function renderPage(page, popstate) {
|
|
1082
1099
|
var _this = this;
|
|
@@ -1151,7 +1168,7 @@ var renderPage = function renderPage(page, popstate) {
|
|
|
1151
1168
|
exports.default = renderPage;
|
|
1152
1169
|
|
|
1153
1170
|
/***/ }),
|
|
1154
|
-
/*
|
|
1171
|
+
/* 16 */
|
|
1155
1172
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1156
1173
|
|
|
1157
1174
|
"use strict";
|
|
@@ -1178,7 +1195,7 @@ var triggerEvent = function triggerEvent(eventName, originalEvent) {
|
|
|
1178
1195
|
exports.default = triggerEvent;
|
|
1179
1196
|
|
|
1180
1197
|
/***/ }),
|
|
1181
|
-
/*
|
|
1198
|
+
/* 17 */
|
|
1182
1199
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1183
1200
|
|
|
1184
1201
|
"use strict";
|
|
@@ -1198,7 +1215,7 @@ var on = function on(event, handler) {
|
|
|
1198
1215
|
exports.default = on;
|
|
1199
1216
|
|
|
1200
1217
|
/***/ }),
|
|
1201
|
-
/*
|
|
1218
|
+
/* 18 */
|
|
1202
1219
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1203
1220
|
|
|
1204
1221
|
"use strict";
|
|
@@ -1238,7 +1255,7 @@ var off = function off(event, handler) {
|
|
|
1238
1255
|
exports.default = off;
|
|
1239
1256
|
|
|
1240
1257
|
/***/ }),
|
|
1241
|
-
/*
|
|
1258
|
+
/* 19 */
|
|
1242
1259
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1243
1260
|
|
|
1244
1261
|
"use strict";
|
|
@@ -1258,6 +1275,37 @@ var updateTransition = function updateTransition(from, to, custom) {
|
|
|
1258
1275
|
|
|
1259
1276
|
exports.default = updateTransition;
|
|
1260
1277
|
|
|
1278
|
+
/***/ }),
|
|
1279
|
+
/* 20 */
|
|
1280
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1281
|
+
|
|
1282
|
+
"use strict";
|
|
1283
|
+
|
|
1284
|
+
|
|
1285
|
+
Object.defineProperty(exports, "__esModule", {
|
|
1286
|
+
value: true
|
|
1287
|
+
});
|
|
1288
|
+
|
|
1289
|
+
var _utils = __webpack_require__(0);
|
|
1290
|
+
|
|
1291
|
+
var getAnchorElement = function getAnchorElement(hash) {
|
|
1292
|
+
if (!hash) {
|
|
1293
|
+
return null;
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
if (hash.charAt(0) === '#') {
|
|
1297
|
+
hash = hash.substring(1);
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1300
|
+
hash = decodeURIComponent(hash);
|
|
1301
|
+
hash = (0, _utils.escapeCssIdentifier)(hash);
|
|
1302
|
+
|
|
1303
|
+
// https://html.spec.whatwg.org/#find-a-potential-indicated-element
|
|
1304
|
+
return (0, _utils.query)('#' + hash) || (0, _utils.query)('a[name=\'' + hash + '\']');
|
|
1305
|
+
};
|
|
1306
|
+
|
|
1307
|
+
exports.default = getAnchorElement;
|
|
1308
|
+
|
|
1261
1309
|
/***/ }),
|
|
1262
1310
|
/* 21 */
|
|
1263
1311
|
/***/ (function(module, exports, __webpack_require__) {
|
|
@@ -1269,9 +1317,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
1269
1317
|
value: true
|
|
1270
1318
|
});
|
|
1271
1319
|
|
|
1272
|
-
var _utils = __webpack_require__(
|
|
1320
|
+
var _utils = __webpack_require__(0);
|
|
1273
1321
|
|
|
1274
|
-
var _helpers = __webpack_require__(
|
|
1322
|
+
var _helpers = __webpack_require__(1);
|
|
1275
1323
|
|
|
1276
1324
|
var getAnimationPromises = function getAnimationPromises() {
|
|
1277
1325
|
var promises = [];
|
|
@@ -1302,7 +1350,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
1302
1350
|
value: true
|
|
1303
1351
|
});
|
|
1304
1352
|
|
|
1305
|
-
var _helpers = __webpack_require__(
|
|
1353
|
+
var _helpers = __webpack_require__(1);
|
|
1306
1354
|
|
|
1307
1355
|
var getPageData = function getPageData(request) {
|
|
1308
1356
|
// this method can be replaced in case other content than html is expected to be received from server
|
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});var r=t.query=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:document;if(typeof t!=="string"){return t}return n.querySelector(t)};var i=t.queryAll=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:document;if(typeof t!=="string"){return t}return Array.prototype.slice.call(n.querySelectorAll(t))};var a=t.escapeCssIdentifier=function e(t){if(window.CSS&&window.CSS.escape){return CSS.escape(t)}else{return t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Link=t.markSwupElements=t.getCurrentUrl=t.transitionEnd=t.fetch=t.getDataFromHtml=t.createHistoryRecord=t.classify=undefined;var r=n(7);var i=w(r);var a=n(8);var o=w(a);var s=n(9);var u=w(s);var l=n(10);var c=w(l);var f=n(11);var d=w(f);var h=n(12);var p=w(h);var v=n(13);var g=w(v);var m=n(14);var y=w(m);function w(e){return e&&e.__esModule?e:{default:e}}var b=t.classify=i.default;var E=t.createHistoryRecord=o.default;var P=t.getDataFromHtml=u.default;var _=t.fetch=c.default;var k=t.transitionEnd=d.default;var S=t.getCurrentUrl=p.default;var O=t.markSwupElements=g.default;var j=t.Link=y.default},function(e,t,n){"use strict";var r=n(3);var i=a(r);function a(e){return e&&e.__esModule?e:{default:e}}e.exports=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();var a=n(4);var o=L(a);var s=n(5);var u=L(s);var l=n(6);var c=L(l);var f=n(15);var d=L(f);var h=n(16);var p=L(h);var v=n(17);var g=L(v);var m=n(18);var y=L(m);var w=n(19);var b=L(w);var E=n(20);var P=L(E);var _=n(21);var k=L(_);var S=n(22);var O=L(S);var j=n(23);var H=n(0);var M=n(1);function L(e){return e&&e.__esModule?e:{default:e}}function T(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var A=function(){function e(t){T(this,e);var n={animateHistoryBrowsing:false,animationSelector:'[class*="transition-"]',linkSelector:'a[href^="'+window.location.origin+'"]:not([data-no-swup]), a[href^="/"]:not([data-no-swup]), a[href^="#"]:not([data-no-swup])',cache:true,containers:["#swup"],requestHeaders:{"X-Requested-With":"swup",Accept:"text/html, application/xhtml+xml"},plugins:[],skipPopStateHandling:function e(t){return!(t.state&&t.state.source==="swup")}};var i=r({},n,t);this._handlers={animationInDone:[],animationInStart:[],animationOutDone:[],animationOutStart:[],animationSkipped:[],clickLink:[],contentReplaced:[],disabled:[],enabled:[],openPageInNewTab:[],pageLoaded:[],pageRetrievedFromCache:[],pageView:[],popState:[],samePage:[],samePageWithHash:[],serverError:[],transitionStart:[],transitionEnd:[],willReplaceContent:[]};this.scrollToElement=null;this.preloadPromise=null;this.options=i;this.plugins=[];this.transition={};this.delegatedListeners={};this.boundPopStateHandler=this.popStateHandler.bind(this);this.cache=new u.default;this.cache.swup=this;this.loadPage=c.default;this.renderPage=d.default;this.triggerEvent=p.default;this.on=g.default;this.off=y.default;this.updateTransition=b.default;this.getAnimationPromises=k.default;this.getPageData=O.default;this.getAnchorElement=P.default;this.log=function(){};this.use=j.use;this.unuse=j.unuse;this.findPlugin=j.findPlugin;this.enable()}i(e,[{key:"enable",value:function e(){var t=this;if(typeof Promise==="undefined"){console.warn("Promise is not supported");return}this.delegatedListeners.click=(0,o.default)(document,this.options.linkSelector,"click",this.linkClickHandler.bind(this));window.addEventListener("popstate",this.boundPopStateHandler);var n=(0,M.getDataFromHtml)(document.documentElement.outerHTML,this.options.containers);n.url=n.responseURL=(0,M.getCurrentUrl)();if(this.options.cache){this.cache.cacheUrl(n)}(0,M.markSwupElements)(document.documentElement,this.options.containers);this.options.plugins.forEach(function(e){t.use(e)});window.history.replaceState(Object.assign({},window.history.state,{url:window.location.href,random:Math.random(),source:"swup"}),document.title,window.location.href);this.triggerEvent("enabled");document.documentElement.classList.add("swup-enabled");this.triggerEvent("pageView")}},{key:"destroy",value:function e(){var t=this;this.delegatedListeners.click.destroy();window.removeEventListener("popstate",this.boundPopStateHandler);this.cache.empty();this.options.plugins.forEach(function(e){t.unuse(e)});(0,H.queryAll)("[data-swup]").forEach(function(e){e.removeAttribute("data-swup")});this.off();this.triggerEvent("disabled");document.documentElement.classList.remove("swup-enabled")}},{key:"linkClickHandler",value:function e(t){if(!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&!t.altKey){if(t.button===0){this.triggerEvent("clickLink",t);t.preventDefault();var n=new M.Link(t.delegateTarget);if(n.getAddress()==(0,M.getCurrentUrl)()||n.getAddress()==""){if(n.getHash()!=""){this.triggerEvent("samePageWithHash",t);var r=(0,P.default)(n.getHash());if(r!=null){history.replaceState({url:n.getAddress()+n.getHash(),random:Math.random(),source:"swup"},document.title,n.getAddress()+n.getHash())}else{console.warn("Element for offset not found ("+n.getHash()+")")}}else{this.triggerEvent("samePage",t)}}else{if(n.getHash()!=""){this.scrollToElement=n.getHash()}var i=t.delegateTarget.getAttribute("data-swup-transition");this.loadPage({url:n.getAddress(),customTransition:i},false)}}}else{this.triggerEvent("openPageInNewTab",t)}}},{key:"popStateHandler",value:function e(t){if(this.options.skipPopStateHandling(t))return;var n=new M.Link(t.state?t.state.url:window.location.pathname);if(n.getHash()!==""){this.scrollToElement=n.getHash()}else{t.preventDefault()}this.triggerEvent("popState",t);this.loadPage({url:n.getAddress()},t)}}]);return e}();t.default=A},function(e,t,n){"use strict";n.r(t);const r=new WeakMap;function i(e,t,n,i){var a,o;if(!e&&!r.has(t)){return false}const s=(a=r.get(t))!==null&&a!==void 0?a:new WeakMap;r.set(t,s);if(!e&&!r.has(t)){return false}const u=(o=s.get(n))!==null&&o!==void 0?o:new Set;s.set(n,u);const l=u.has(i);if(e){u.add(i)}else{u.delete(i)}return l&&e}function a(e){return typeof e.addEventListener==="function"}function o(e,t){let n=e.target;if(n instanceof Text){n=n.parentElement}if(n instanceof Element&&e.currentTarget instanceof Element){const r=n.closest(t);if(r&&e.currentTarget.contains(r)){return r}}}function s(e,t,n,r,u){if(typeof e==="string"){e=document.querySelectorAll(e)}if(!a(e)){const i=Array.prototype.map.call(e,e=>s(e,t,n,r,u));return{destroy(){for(const e of i){e.destroy()}}}}const l=e instanceof Document?e.documentElement:e;const c=Boolean(typeof u==="object"?u.capture:u);const f=e=>{const n=o(e,t);if(n){e.delegateTarget=n;r.call(l,e)}};if(typeof u==="object"){delete u.once}const d=JSON.stringify({selector:t,type:n,capture:c});const h=i(true,l,r,d);const p={destroy(){l.removeEventListener(n,f,u);i(false,l,r,d)}};if(!h){l.addEventListener(n,f,u)}return p}t["default"]=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();function i(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var a=t.Cache=function(){function e(){i(this,e);this.pages={};this.last=null}r(e,[{key:"cacheUrl",value:function e(t){if(t.url in this.pages===false){this.pages[t.url]=t}this.last=this.pages[t.url];this.swup.log("Cache ("+Object.keys(this.pages).length+")",this.pages)}},{key:"getPage",value:function e(t){return this.pages[t]}},{key:"getCurrentPage",value:function e(){return this.getPage(window.location.pathname+window.location.search)}},{key:"exists",value:function e(t){return t in this.pages}},{key:"empty",value:function e(){this.pages={};this.last=null;this.swup.log("Cache cleared")}},{key:"remove",value:function e(t){delete this.pages[t]}}]);return e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=n(1);var a=function e(t,n){var a=this;var o=[],s=void 0;var u=function e(){a.triggerEvent("animationOutStart");document.documentElement.classList.add("is-changing");document.documentElement.classList.add("is-leaving");document.documentElement.classList.add("is-animating");if(n){document.documentElement.classList.add("is-popstate")}document.documentElement.classList.add("to-"+(0,i.classify)(t.url));o=a.getAnimationPromises("out");Promise.all(o).then(function(){a.triggerEvent("animationOutDone")});if(!n){var r=void 0;if(a.scrollToElement!=null){r=t.url+a.scrollToElement}else{r=t.url}(0,i.createHistoryRecord)(r)}};this.triggerEvent("transitionStart",n);if(t.customTransition!=null){this.updateTransition(window.location.pathname,t.url,t.customTransition);document.documentElement.classList.add("to-"+(0,i.classify)(t.customTransition))}else{this.updateTransition(window.location.pathname,t.url)}if(!n||this.options.animateHistoryBrowsing){u()}else{this.triggerEvent("animationSkipped")}if(this.cache.exists(t.url)){s=new Promise(function(e){e()});this.triggerEvent("pageRetrievedFromCache")}else{if(!this.preloadPromise||this.preloadPromise.route!=t.url){s=new Promise(function(e,n){(0,i.fetch)(r({},t,{headers:a.options.requestHeaders}),function(r){if(r.status===500){a.triggerEvent("serverError");n(t.url);return}else{var i=a.getPageData(r);if(i!=null){i.url=t.url}else{n(t.url);return}a.cache.cacheUrl(i);a.triggerEvent("pageLoaded")}e()})})}else{s=this.preloadPromise}}Promise.all(o.concat([s])).then(function(){a.renderPage(a.cache.getPage(t.url),n);a.preloadPromise=null}).catch(function(e){a.options.skipPopStateHandling=function(){window.location=e;return true};window.history.go(-1)})};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t){var n=t.toString().toLowerCase().replace(/\s+/g,"-").replace(/\//g,"-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,"");if(n[0]==="/")n=n.splice(1);if(n==="")n="homepage";return n};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t){window.history.pushState({url:t||window.location.href.split(window.location.hostname)[1],random:Math.random(),source:"swup"},document.getElementsByTagName("title")[0].innerText,t||window.location.href.split(window.location.hostname)[1])};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol==="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var i=n(0);var a=function e(t,n){var a=document.createElement("html");a.innerHTML=t;var o=[];var s=function e(t){if(a.querySelector(n[t])==null){return{v:null}}else{(0,i.queryAll)(n[t]).forEach(function(e,r){(0,i.queryAll)(n[t],a)[r].setAttribute("data-swup",o.length);o.push((0,i.queryAll)(n[t],a)[r].outerHTML)})}};for(var u=0;u<n.length;u++){var l=s(u);if((typeof l==="undefined"?"undefined":r(l))==="object")return l.v}var c={title:a.querySelector("title").innerText,pageClass:a.querySelector("body").className,originalContent:t,blocks:o};a.innerHTML="";a=null;return c};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=function e(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var i={url:window.location.pathname+window.location.search,method:"GET",data:null,headers:{}};var a=r({},i,t);var o=new XMLHttpRequest;o.onreadystatechange=function(){if(o.readyState===4){if(o.status!==500){n(o)}else{n(o)}}};o.open(a.method,a.url,true);Object.keys(a.headers).forEach(function(e){o.setRequestHeader(e,a.headers[e])});o.send(a.data);return o};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(){var t=document.createElement("div");var n={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var r in n){if(t.style[r]!==undefined){return n[r]}}return false};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(){return window.location.pathname+window.location.search};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(0);var i=function e(t,n){var i=0;var a=function e(a){if(t.querySelector(n[a])==null){console.warn("Element "+n[a]+" is not in current page.")}else{(0,r.queryAll)(n[a]).forEach(function(e,o){(0,r.queryAll)(n[a],t)[o].setAttribute("data-swup",i);i++})}};for(var o=0;o<n.length;o++){a(o)}};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,n,r){if(n)e(t.prototype,n);if(r)e(t,r);return t}}();function i(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var a=function(){function e(t){i(this,e);if(t instanceof Element||t instanceof SVGElement){this.link=t}else{this.link=document.createElement("a");this.link.href=t}}r(e,[{key:"getPath",value:function e(){var t=this.link.pathname;if(t[0]!=="/"){t="/"+t}return t}},{key:"getAddress",value:function e(){var t=this.link.pathname+this.link.search;if(this.link.getAttribute("xlink:href")){t=this.link.getAttribute("xlink:href")}if(t[0]!=="/"){t="/"+t}return t}},{key:"getHash",value:function e(){return this.link.hash}}]);return e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n){if(Object.prototype.hasOwnProperty.call(n,r)){e[r]=n[r]}}}return e};var i=n(0);var a=n(1);var o=function e(t,n){var i=this;document.documentElement.classList.remove("is-leaving");var o=new a.Link(t.responseURL);if(window.location.pathname!==o.getPath()){window.history.replaceState({url:o.getPath(),random:Math.random(),source:"swup"},document.title,o.getPath());this.cache.cacheUrl(r({},t,{url:o.getPath()}))}if(!n||this.options.animateHistoryBrowsing){document.documentElement.classList.add("is-rendering")}this.triggerEvent("willReplaceContent",n);for(var s=0;s<t.blocks.length;s++){document.body.querySelector('[data-swup="'+s+'"]').outerHTML=t.blocks[s]}document.title=t.title;this.triggerEvent("contentReplaced",n);this.triggerEvent("pageView",n);if(!this.options.cache){this.cache.empty()}setTimeout(function(){if(!n||i.options.animateHistoryBrowsing){i.triggerEvent("animationInStart");document.documentElement.classList.remove("is-animating")}},10);if(!n||this.options.animateHistoryBrowsing){var u=this.getAnimationPromises("in");Promise.all(u).then(function(){i.triggerEvent("animationInDone");i.triggerEvent("transitionEnd",n);document.documentElement.className.split(" ").forEach(function(e){if(new RegExp("^to-").test(e)||e==="is-changing"||e==="is-rendering"||e==="is-popstate"){document.documentElement.classList.remove(e)}})})}else{this.triggerEvent("transitionEnd",n)}this.scrollToElement=null};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){this._handlers[t].forEach(function(e){try{e(n)}catch(e){console.error(e)}});var r=new CustomEvent("swup:"+t,{detail:t});document.dispatchEvent(r)};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){if(this._handlers[t]){this._handlers[t].push(n)}else{console.warn("Unsupported event "+t+".")}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n){var r=this;if(t!=null){if(n!=null){if(this._handlers[t]&&this._handlers[t].filter(function(e){return e===n}).length){var i=this._handlers[t].filter(function(e){return e===n})[0];var a=this._handlers[t].indexOf(i);if(a>-1){this._handlers[t].splice(a,1)}}else{console.warn("Handler for event '"+t+"' no found.")}}else{this._handlers[t]=[]}}else{Object.keys(this._handlers).forEach(function(e){r._handlers[e]=[]})}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function e(t,n,r){this.transition={from:t,to:n,custom:r}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(0);var i=function e(t){if(!t){return null}if(t.charAt(0)==="#"){t=t.substring(1)}t=decodeURIComponent(t);t=(0,r.escapeCssIdentifier)(t);return(0,r.query)("#"+t)||(0,r.query)("a[name='"+t+"']")};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(0);var i=n(1);var a=function e(){var t=[];var n=(0,r.queryAll)(this.options.animationSelector);n.forEach(function(e){var n=new Promise(function(t){e.addEventListener((0,i.transitionEnd)(),function(n){if(e==n.target){t()}})});t.push(n)});return t};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=n(1);var i=function e(t){var n=t.responseText;var i=(0,r.getDataFromHtml)(n,this.options.containers);if(i){i.responseURL=t.responseURL?t.responseURL:window.location.href}else{console.warn("Received page is invalid.");return null}return i};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=t.use=function e(t){if(!t.isSwupPlugin){console.warn("Not swup plugin instance "+t+".");return}this.plugins.push(t);t.swup=this;if(typeof t._beforeMount==="function"){t._beforeMount()}t.mount();return this.plugins};var i=t.unuse=function e(t){var n=void 0;if(typeof t==="string"){n=this.plugins.find(function(e){return t===e.name})}else{n=t}if(!n){console.warn("No such plugin.");return}n.unmount();if(typeof n._afterUnmount==="function"){n._afterUnmount()}var r=this.plugins.indexOf(n);this.plugins.splice(r,1);return this.plugins};var a=t.findPlugin=function e(t){return this.plugins.find(function(e){return t===e.name})}}])});
|
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
|
|
|
@@ -43,6 +43,10 @@ var _updateTransition = require('./modules/updateTransition');
|
|
|
43
43
|
|
|
44
44
|
var _updateTransition2 = _interopRequireDefault(_updateTransition);
|
|
45
45
|
|
|
46
|
+
var _getAnchorElement = require('./modules/getAnchorElement');
|
|
47
|
+
|
|
48
|
+
var _getAnchorElement2 = _interopRequireDefault(_getAnchorElement);
|
|
49
|
+
|
|
46
50
|
var _getAnimationPromises = require('./modules/getAnimationPromises');
|
|
47
51
|
|
|
48
52
|
var _getAnimationPromises2 = _interopRequireDefault(_getAnimationPromises);
|
|
@@ -109,7 +113,7 @@ var Swup = function () {
|
|
|
109
113
|
willReplaceContent: []
|
|
110
114
|
};
|
|
111
115
|
|
|
112
|
-
// variable for
|
|
116
|
+
// variable for anchor to scroll to after render
|
|
113
117
|
this.scrollToElement = null;
|
|
114
118
|
// variable for promise used for preload, so no new loading of the same page starts while page is loading
|
|
115
119
|
this.preloadPromise = null;
|
|
@@ -135,6 +139,7 @@ var Swup = function () {
|
|
|
135
139
|
this.updateTransition = _updateTransition2.default;
|
|
136
140
|
this.getAnimationPromises = _getAnimationPromises2.default;
|
|
137
141
|
this.getPageData = _getPageData2.default;
|
|
142
|
+
this.getAnchorElement = _getAnchorElement2.default;
|
|
138
143
|
this.log = function () {}; // here so it can be used by plugins
|
|
139
144
|
this.use = _plugins.use;
|
|
140
145
|
this.unuse = _plugins.unuse;
|
|
@@ -156,7 +161,7 @@ var Swup = function () {
|
|
|
156
161
|
}
|
|
157
162
|
|
|
158
163
|
// add event listeners
|
|
159
|
-
this.delegatedListeners.click = (0,
|
|
164
|
+
this.delegatedListeners.click = (0, _delegateIt2.default)(document, this.options.linkSelector, 'click', this.linkClickHandler.bind(this));
|
|
160
165
|
window.addEventListener('popstate', this.boundPopStateHandler);
|
|
161
166
|
|
|
162
167
|
// initial save to cache
|
|
@@ -238,7 +243,7 @@ var Swup = function () {
|
|
|
238
243
|
if (link.getHash() != '') {
|
|
239
244
|
// link to the same URL with hash
|
|
240
245
|
this.triggerEvent('samePageWithHash', event);
|
|
241
|
-
var element =
|
|
246
|
+
var element = (0, _getAnchorElement2.default)(link.getHash());
|
|
242
247
|
if (element != null) {
|
|
243
248
|
history.replaceState({
|
|
244
249
|
url: link.getAddress() + link.getHash(),
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _utils = require('../utils');
|
|
8
|
+
|
|
9
|
+
var getAnchorElement = function getAnchorElement(hash) {
|
|
10
|
+
if (!hash) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (hash.charAt(0) === '#') {
|
|
15
|
+
hash = hash.substring(1);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
hash = decodeURIComponent(hash);
|
|
19
|
+
hash = (0, _utils.escapeCssIdentifier)(hash);
|
|
20
|
+
|
|
21
|
+
// https://html.spec.whatwg.org/#find-a-potential-indicated-element
|
|
22
|
+
return (0, _utils.query)('#' + hash) || (0, _utils.query)('a[name=\'' + hash + '\']');
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.default = getAnchorElement;
|
package/lib/utils/index.js
CHANGED
|
@@ -21,4 +21,12 @@ var queryAll = exports.queryAll = function queryAll(selector) {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
return Array.prototype.slice.call(context.querySelectorAll(selector));
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var escapeCssIdentifier = exports.escapeCssIdentifier = function escapeCssIdentifier(ident) {
|
|
27
|
+
if (window.CSS && window.CSS.escape) {
|
|
28
|
+
return CSS.escape(ident);
|
|
29
|
+
} else {
|
|
30
|
+
return ident;
|
|
31
|
+
}
|
|
24
32
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swup",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.16",
|
|
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,6 +1,10 @@
|
|
|
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
|
-
Complete, flexible, extensible and easy to use page transition library for your web.
|
|
7
|
+
Complete, flexible, extensible and easy to use page transition library for your static web.
|
|
4
8
|
</p>
|
|
5
9
|
<p align="center">
|
|
6
10
|
<a href="https://www.npmjs.com/package/swup"><img src="https://img.shields.io/npm/v/swup.svg" alt="npm version"></a>
|
|
@@ -10,29 +14,31 @@ Complete, flexible, extensible and easy to use page transition library for your
|
|
|
10
14
|
<a href="https://circleci.com/gh/swup/swup"><img src="https://circleci.com/gh/swup/swup.svg?style=svg" alt="CircleCI"></a>
|
|
11
15
|
</p>
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
[Here](https://medium.com/@gmarcuk/introducing-swup-v2-814e40316dee)'s what's new in v2. Check [changelog](https://swup.js.org/other/changelog) for recent changes, see all [swup repositories](https://github.com/swup/) to discover more, or checkout the [discussions](https://github.com/swup/swup/discussions).
|
|
14
18
|
|
|
15
|
-
- [
|
|
19
|
+
- [Discussions](https://github.com/swup/swup/discussions)
|
|
20
|
+
- [Getting Started](https://swup.js.org/getting-started)
|
|
16
21
|
- [Example](https://swup.js.org/getting-started/example)
|
|
17
22
|
- [Demo](https://swup.js.org/getting-started/demo)
|
|
18
|
-
- [Reloading
|
|
23
|
+
- [Reloading JavaScript](https://swup.js.org/getting-started/reloading-javascript)
|
|
24
|
+
- [Video Tutorials](https://swup.js.org/getting-started/videos)
|
|
19
25
|
- [Options](https://swup.js.org/options)
|
|
20
26
|
- [Events](https://swup.js.org/events)
|
|
21
|
-
-
|
|
22
|
-
- [
|
|
23
|
-
- [
|
|
24
|
-
- [
|
|
25
|
-
- [
|
|
26
|
-
- [
|
|
27
|
+
- Extensions
|
|
28
|
+
- [Plugins](https://swup.js.org/plugins)
|
|
29
|
+
- [Themes](https://swup.js.org/themes)
|
|
30
|
+
- [3rd Party Integrations](https://swup.js.org/third-party-integrations)
|
|
31
|
+
- [JavaScript API](https://swup.js.org/api)
|
|
32
|
+
- [Swup CLI](https://swup.js.org/cli)
|
|
33
|
+
- [CI/CD Integration](https://swup.js.org/ci-cd)
|
|
34
|
+
- Other
|
|
35
|
+
- [Changelog](https://swup.js.org//other/changelog)
|
|
36
|
+
- [Contributions](https://swup.js.org/other/contributions)
|
|
37
|
+
- [Repositories](https://github.com/swup)
|
|
38
|
+
- [Sites using swup](https://github.com/swup/swup/discussions/333)
|
|
27
39
|
|
|
28
|
-
If you're having trouble implementing swup, checkout [Common Issues](https://swup.js.org/common-issues), [Closed Issues](https://github.com/gmrchk/swup/issues?q=is%3Aissue+is%3Aclosed) or open a [new one](https://github.com/gmrchk/swup/issues/new).
|
|
40
|
+
If you're having trouble implementing swup, checkout [Common Issues](https://swup.js.org/other/common-issues), [Closed Issues](https://github.com/gmrchk/swup/issues?q=is%3Aissue+is%3Aclosed) or open a [new one](https://github.com/gmrchk/swup/issues/new).
|
|
29
41
|
|
|
30
|
-
[Become a backer or sponsor on Open Collective](https://opencollective.com/swup)
|
|
31
|
-
|
|
32
|
-
<p>
|
|
33
|
-
<a href="https://opencollective.com/swup/donate">
|
|
34
|
-
<img src="https://opencollective.com/swup/donate/button@2x.png?color=blue" width=300 />
|
|
35
|
-
</a>
|
|
36
|
-
</p>
|
|
42
|
+
[Become a backer or sponsor on Open Collective](https://opencollective.com/swup) or support swup through [GitHub sponsors](https://github.com/sponsors/gmrchk).
|
|
37
43
|
|
|
38
44
|
<img src="https://user-images.githubusercontent.com/9338324/49190360-50125480-f372-11e8-89e9-d2fb091a2240.gif" width="100%">
|