swup 2.0.16 → 2.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +19 -0
- package/cypress.config.js +2 -1
- package/dist/swup.js +394 -306
- package/dist/swup.min.js +1 -1
- package/lib/helpers/cleanupAnimationClasses.js +18 -0
- package/lib/helpers/createHistoryRecord.js +1 -1
- package/lib/helpers/getDataFromHtml.js +12 -19
- package/lib/helpers/index.js +17 -2
- package/lib/helpers/markSwupElements.js +6 -10
- package/lib/helpers/normalizeUrl.js +17 -0
- package/lib/helpers/transitionEnd.js +4 -15
- package/lib/helpers/transitionProperty.js +14 -0
- package/lib/index.js +13 -5
- package/lib/modules/Cache.js +7 -1
- package/lib/modules/getAnimationPromises.js +17 -1
- package/lib/modules/getPageData.js +1 -1
- package/lib/modules/loadPage.js +10 -5
- package/lib/modules/renderPage.js +9 -16
- package/package.json +10 -5
package/dist/swup.js
CHANGED
|
@@ -91,7 +91,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
|
91
91
|
/******/
|
|
92
92
|
/******/
|
|
93
93
|
/******/ // Load entry module and return exports
|
|
94
|
-
/******/ return __webpack_require__(__webpack_require__.s =
|
|
94
|
+
/******/ return __webpack_require__(__webpack_require__.s = 3);
|
|
95
95
|
/******/ })
|
|
96
96
|
/************************************************************************/
|
|
97
97
|
/******/ ([
|
|
@@ -101,6 +101,76 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
|
101
101
|
"use strict";
|
|
102
102
|
|
|
103
103
|
|
|
104
|
+
Object.defineProperty(exports, "__esModule", {
|
|
105
|
+
value: true
|
|
106
|
+
});
|
|
107
|
+
exports.cleanupAnimationClasses = exports.Link = exports.markSwupElements = exports.normalizeUrl = exports.getCurrentUrl = exports.transitionProperty = exports.transitionEnd = exports.fetch = exports.getDataFromHtml = exports.createHistoryRecord = exports.classify = undefined;
|
|
108
|
+
|
|
109
|
+
var _classify = __webpack_require__(7);
|
|
110
|
+
|
|
111
|
+
var _classify2 = _interopRequireDefault(_classify);
|
|
112
|
+
|
|
113
|
+
var _createHistoryRecord = __webpack_require__(8);
|
|
114
|
+
|
|
115
|
+
var _createHistoryRecord2 = _interopRequireDefault(_createHistoryRecord);
|
|
116
|
+
|
|
117
|
+
var _getDataFromHtml = __webpack_require__(9);
|
|
118
|
+
|
|
119
|
+
var _getDataFromHtml2 = _interopRequireDefault(_getDataFromHtml);
|
|
120
|
+
|
|
121
|
+
var _fetch = __webpack_require__(10);
|
|
122
|
+
|
|
123
|
+
var _fetch2 = _interopRequireDefault(_fetch);
|
|
124
|
+
|
|
125
|
+
var _transitionEnd = __webpack_require__(11);
|
|
126
|
+
|
|
127
|
+
var _transitionEnd2 = _interopRequireDefault(_transitionEnd);
|
|
128
|
+
|
|
129
|
+
var _transitionProperty = __webpack_require__(12);
|
|
130
|
+
|
|
131
|
+
var _transitionProperty2 = _interopRequireDefault(_transitionProperty);
|
|
132
|
+
|
|
133
|
+
var _getCurrentUrl = __webpack_require__(13);
|
|
134
|
+
|
|
135
|
+
var _getCurrentUrl2 = _interopRequireDefault(_getCurrentUrl);
|
|
136
|
+
|
|
137
|
+
var _normalizeUrl = __webpack_require__(14);
|
|
138
|
+
|
|
139
|
+
var _normalizeUrl2 = _interopRequireDefault(_normalizeUrl);
|
|
140
|
+
|
|
141
|
+
var _markSwupElements = __webpack_require__(15);
|
|
142
|
+
|
|
143
|
+
var _markSwupElements2 = _interopRequireDefault(_markSwupElements);
|
|
144
|
+
|
|
145
|
+
var _Link = __webpack_require__(2);
|
|
146
|
+
|
|
147
|
+
var _Link2 = _interopRequireDefault(_Link);
|
|
148
|
+
|
|
149
|
+
var _cleanupAnimationClasses = __webpack_require__(16);
|
|
150
|
+
|
|
151
|
+
var _cleanupAnimationClasses2 = _interopRequireDefault(_cleanupAnimationClasses);
|
|
152
|
+
|
|
153
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
154
|
+
|
|
155
|
+
var classify = exports.classify = _classify2.default;
|
|
156
|
+
var createHistoryRecord = exports.createHistoryRecord = _createHistoryRecord2.default;
|
|
157
|
+
var getDataFromHtml = exports.getDataFromHtml = _getDataFromHtml2.default;
|
|
158
|
+
var fetch = exports.fetch = _fetch2.default;
|
|
159
|
+
var transitionEnd = exports.transitionEnd = _transitionEnd2.default;
|
|
160
|
+
var transitionProperty = exports.transitionProperty = _transitionProperty2.default;
|
|
161
|
+
var getCurrentUrl = exports.getCurrentUrl = _getCurrentUrl2.default;
|
|
162
|
+
var normalizeUrl = exports.normalizeUrl = _normalizeUrl2.default;
|
|
163
|
+
var markSwupElements = exports.markSwupElements = _markSwupElements2.default;
|
|
164
|
+
var Link = exports.Link = _Link2.default;
|
|
165
|
+
var cleanupAnimationClasses = exports.cleanupAnimationClasses = _cleanupAnimationClasses2.default;
|
|
166
|
+
|
|
167
|
+
/***/ }),
|
|
168
|
+
/* 1 */
|
|
169
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
170
|
+
|
|
171
|
+
"use strict";
|
|
172
|
+
|
|
173
|
+
|
|
104
174
|
Object.defineProperty(exports, "__esModule", {
|
|
105
175
|
value: true
|
|
106
176
|
});
|
|
@@ -133,68 +203,75 @@ var escapeCssIdentifier = exports.escapeCssIdentifier = function escapeCssIdenti
|
|
|
133
203
|
};
|
|
134
204
|
|
|
135
205
|
/***/ }),
|
|
136
|
-
/*
|
|
206
|
+
/* 2 */
|
|
137
207
|
/***/ (function(module, exports, __webpack_require__) {
|
|
138
208
|
|
|
139
209
|
"use strict";
|
|
140
210
|
|
|
141
211
|
|
|
142
212
|
Object.defineProperty(exports, "__esModule", {
|
|
143
|
-
|
|
213
|
+
value: true
|
|
144
214
|
});
|
|
145
|
-
exports.Link = exports.markSwupElements = exports.getCurrentUrl = exports.transitionEnd = exports.fetch = exports.getDataFromHtml = exports.createHistoryRecord = exports.classify = undefined;
|
|
146
|
-
|
|
147
|
-
var _classify = __webpack_require__(7);
|
|
148
215
|
|
|
149
|
-
var
|
|
150
|
-
|
|
151
|
-
var _createHistoryRecord = __webpack_require__(8);
|
|
152
|
-
|
|
153
|
-
var _createHistoryRecord2 = _interopRequireDefault(_createHistoryRecord);
|
|
154
|
-
|
|
155
|
-
var _getDataFromHtml = __webpack_require__(9);
|
|
156
|
-
|
|
157
|
-
var _getDataFromHtml2 = _interopRequireDefault(_getDataFromHtml);
|
|
158
|
-
|
|
159
|
-
var _fetch = __webpack_require__(10);
|
|
160
|
-
|
|
161
|
-
var _fetch2 = _interopRequireDefault(_fetch);
|
|
162
|
-
|
|
163
|
-
var _transitionEnd = __webpack_require__(11);
|
|
164
|
-
|
|
165
|
-
var _transitionEnd2 = _interopRequireDefault(_transitionEnd);
|
|
216
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
166
217
|
|
|
167
|
-
|
|
218
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
168
219
|
|
|
169
|
-
var
|
|
220
|
+
var Link = function () {
|
|
221
|
+
function Link(elementOrUrl) {
|
|
222
|
+
_classCallCheck(this, Link);
|
|
170
223
|
|
|
171
|
-
|
|
224
|
+
if (elementOrUrl instanceof Element || elementOrUrl instanceof SVGElement) {
|
|
225
|
+
this.link = elementOrUrl;
|
|
226
|
+
} else {
|
|
227
|
+
this.link = document.createElement('a');
|
|
228
|
+
this.link.href = elementOrUrl;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
172
231
|
|
|
173
|
-
|
|
232
|
+
_createClass(Link, [{
|
|
233
|
+
key: 'getPath',
|
|
234
|
+
value: function getPath() {
|
|
235
|
+
var path = this.link.pathname;
|
|
236
|
+
if (path[0] !== '/') {
|
|
237
|
+
path = '/' + path;
|
|
238
|
+
}
|
|
239
|
+
return path;
|
|
240
|
+
}
|
|
241
|
+
}, {
|
|
242
|
+
key: 'getAddress',
|
|
243
|
+
value: function getAddress() {
|
|
244
|
+
var path = this.link.pathname + this.link.search;
|
|
174
245
|
|
|
175
|
-
|
|
246
|
+
if (this.link.getAttribute('xlink:href')) {
|
|
247
|
+
path = this.link.getAttribute('xlink:href');
|
|
248
|
+
}
|
|
176
249
|
|
|
177
|
-
|
|
250
|
+
if (path[0] !== '/') {
|
|
251
|
+
path = '/' + path;
|
|
252
|
+
}
|
|
253
|
+
return path;
|
|
254
|
+
}
|
|
255
|
+
}, {
|
|
256
|
+
key: 'getHash',
|
|
257
|
+
value: function getHash() {
|
|
258
|
+
return this.link.hash;
|
|
259
|
+
}
|
|
260
|
+
}]);
|
|
178
261
|
|
|
179
|
-
|
|
262
|
+
return Link;
|
|
263
|
+
}();
|
|
180
264
|
|
|
181
|
-
|
|
182
|
-
var createHistoryRecord = exports.createHistoryRecord = _createHistoryRecord2.default;
|
|
183
|
-
var getDataFromHtml = exports.getDataFromHtml = _getDataFromHtml2.default;
|
|
184
|
-
var fetch = exports.fetch = _fetch2.default;
|
|
185
|
-
var transitionEnd = exports.transitionEnd = _transitionEnd2.default;
|
|
186
|
-
var getCurrentUrl = exports.getCurrentUrl = _getCurrentUrl2.default;
|
|
187
|
-
var markSwupElements = exports.markSwupElements = _markSwupElements2.default;
|
|
188
|
-
var Link = exports.Link = _Link2.default;
|
|
265
|
+
exports.default = Link;
|
|
189
266
|
|
|
190
267
|
/***/ }),
|
|
191
|
-
/*
|
|
268
|
+
/* 3 */
|
|
192
269
|
/***/ (function(module, exports, __webpack_require__) {
|
|
193
270
|
|
|
194
271
|
"use strict";
|
|
195
272
|
|
|
196
273
|
|
|
197
|
-
var _index = __webpack_require__(
|
|
274
|
+
var _index = __webpack_require__(4);
|
|
198
275
|
|
|
199
276
|
var _index2 = _interopRequireDefault(_index);
|
|
200
277
|
|
|
@@ -203,7 +280,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
203
280
|
module.exports = _index2.default; // this is here for webpack to expose Swup as window.Swup
|
|
204
281
|
|
|
205
282
|
/***/ }),
|
|
206
|
-
/*
|
|
283
|
+
/* 4 */
|
|
207
284
|
/***/ (function(module, exports, __webpack_require__) {
|
|
208
285
|
|
|
209
286
|
"use strict";
|
|
@@ -220,55 +297,55 @@ var _createClass = function () { function defineProperties(target, props) { for
|
|
|
220
297
|
// modules
|
|
221
298
|
|
|
222
299
|
|
|
223
|
-
var _delegateIt = __webpack_require__(
|
|
300
|
+
var _delegateIt = __webpack_require__(5);
|
|
224
301
|
|
|
225
302
|
var _delegateIt2 = _interopRequireDefault(_delegateIt);
|
|
226
303
|
|
|
227
|
-
var _Cache = __webpack_require__(
|
|
304
|
+
var _Cache = __webpack_require__(6);
|
|
228
305
|
|
|
229
306
|
var _Cache2 = _interopRequireDefault(_Cache);
|
|
230
307
|
|
|
231
|
-
var _loadPage = __webpack_require__(
|
|
308
|
+
var _loadPage = __webpack_require__(17);
|
|
232
309
|
|
|
233
310
|
var _loadPage2 = _interopRequireDefault(_loadPage);
|
|
234
311
|
|
|
235
|
-
var _renderPage = __webpack_require__(
|
|
312
|
+
var _renderPage = __webpack_require__(18);
|
|
236
313
|
|
|
237
314
|
var _renderPage2 = _interopRequireDefault(_renderPage);
|
|
238
315
|
|
|
239
|
-
var _triggerEvent = __webpack_require__(
|
|
316
|
+
var _triggerEvent = __webpack_require__(19);
|
|
240
317
|
|
|
241
318
|
var _triggerEvent2 = _interopRequireDefault(_triggerEvent);
|
|
242
319
|
|
|
243
|
-
var _on = __webpack_require__(
|
|
320
|
+
var _on = __webpack_require__(20);
|
|
244
321
|
|
|
245
322
|
var _on2 = _interopRequireDefault(_on);
|
|
246
323
|
|
|
247
|
-
var _off = __webpack_require__(
|
|
324
|
+
var _off = __webpack_require__(21);
|
|
248
325
|
|
|
249
326
|
var _off2 = _interopRequireDefault(_off);
|
|
250
327
|
|
|
251
|
-
var _updateTransition = __webpack_require__(
|
|
328
|
+
var _updateTransition = __webpack_require__(22);
|
|
252
329
|
|
|
253
330
|
var _updateTransition2 = _interopRequireDefault(_updateTransition);
|
|
254
331
|
|
|
255
|
-
var _getAnchorElement = __webpack_require__(
|
|
332
|
+
var _getAnchorElement = __webpack_require__(23);
|
|
256
333
|
|
|
257
334
|
var _getAnchorElement2 = _interopRequireDefault(_getAnchorElement);
|
|
258
335
|
|
|
259
|
-
var _getAnimationPromises = __webpack_require__(
|
|
336
|
+
var _getAnimationPromises = __webpack_require__(24);
|
|
260
337
|
|
|
261
338
|
var _getAnimationPromises2 = _interopRequireDefault(_getAnimationPromises);
|
|
262
339
|
|
|
263
|
-
var _getPageData = __webpack_require__(
|
|
340
|
+
var _getPageData = __webpack_require__(25);
|
|
264
341
|
|
|
265
342
|
var _getPageData2 = _interopRequireDefault(_getPageData);
|
|
266
343
|
|
|
267
|
-
var _plugins = __webpack_require__(
|
|
344
|
+
var _plugins = __webpack_require__(26);
|
|
268
345
|
|
|
269
|
-
var _utils = __webpack_require__(
|
|
346
|
+
var _utils = __webpack_require__(1);
|
|
270
347
|
|
|
271
|
-
var _helpers = __webpack_require__(
|
|
348
|
+
var _helpers = __webpack_require__(0);
|
|
272
349
|
|
|
273
350
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
274
351
|
|
|
@@ -353,6 +430,8 @@ var Swup = function () {
|
|
|
353
430
|
this.use = _plugins.use;
|
|
354
431
|
this.unuse = _plugins.unuse;
|
|
355
432
|
this.findPlugin = _plugins.findPlugin;
|
|
433
|
+
this.getCurrentUrl = _helpers.getCurrentUrl;
|
|
434
|
+
this.cleanupAnimationClasses = _helpers.cleanupAnimationClasses;
|
|
356
435
|
|
|
357
436
|
// enable swup
|
|
358
437
|
this.enable();
|
|
@@ -374,11 +453,11 @@ var Swup = function () {
|
|
|
374
453
|
window.addEventListener('popstate', this.boundPopStateHandler);
|
|
375
454
|
|
|
376
455
|
// initial save to cache
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
456
|
+
if (this.options.cache) {}
|
|
457
|
+
// disabled to avoid caching modified dom state
|
|
458
|
+
// https://github.com/swup/swup/issues/475
|
|
459
|
+
// logic moved to preload plugin
|
|
460
|
+
|
|
382
461
|
|
|
383
462
|
// mark swup blocks in html
|
|
384
463
|
(0, _helpers.markSwupElements)(document.documentElement, this.options.containers);
|
|
@@ -496,6 +575,12 @@ var Swup = function () {
|
|
|
496
575
|
event.preventDefault();
|
|
497
576
|
}
|
|
498
577
|
this.triggerEvent('popState', event);
|
|
578
|
+
|
|
579
|
+
if (!this.options.animateHistoryBrowsing) {
|
|
580
|
+
document.documentElement.classList.remove('is-animating');
|
|
581
|
+
(0, _helpers.cleanupAnimationClasses)();
|
|
582
|
+
}
|
|
583
|
+
|
|
499
584
|
this.loadPage({ url: link.getAddress() }, event);
|
|
500
585
|
}
|
|
501
586
|
}]);
|
|
@@ -506,7 +591,7 @@ var Swup = function () {
|
|
|
506
591
|
exports.default = Swup;
|
|
507
592
|
|
|
508
593
|
/***/ }),
|
|
509
|
-
/*
|
|
594
|
+
/* 5 */
|
|
510
595
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
511
596
|
|
|
512
597
|
"use strict";
|
|
@@ -599,7 +684,7 @@ function delegate(base, selector, type, callback, options) {
|
|
|
599
684
|
|
|
600
685
|
|
|
601
686
|
/***/ }),
|
|
602
|
-
/*
|
|
687
|
+
/* 6 */
|
|
603
688
|
/***/ (function(module, exports, __webpack_require__) {
|
|
604
689
|
|
|
605
690
|
"use strict";
|
|
@@ -608,9 +693,12 @@ function delegate(base, selector, type, callback, options) {
|
|
|
608
693
|
Object.defineProperty(exports, "__esModule", {
|
|
609
694
|
value: true
|
|
610
695
|
});
|
|
696
|
+
exports.Cache = undefined;
|
|
611
697
|
|
|
612
698
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
613
699
|
|
|
700
|
+
var _helpers = __webpack_require__(0);
|
|
701
|
+
|
|
614
702
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
615
703
|
|
|
616
704
|
var Cache = exports.Cache = function () {
|
|
@@ -624,6 +712,7 @@ var Cache = exports.Cache = function () {
|
|
|
624
712
|
_createClass(Cache, [{
|
|
625
713
|
key: 'cacheUrl',
|
|
626
714
|
value: function cacheUrl(page) {
|
|
715
|
+
page.url = (0, _helpers.normalizeUrl)(page.url);
|
|
627
716
|
if (page.url in this.pages === false) {
|
|
628
717
|
this.pages[page.url] = page;
|
|
629
718
|
}
|
|
@@ -633,16 +722,18 @@ var Cache = exports.Cache = function () {
|
|
|
633
722
|
}, {
|
|
634
723
|
key: 'getPage',
|
|
635
724
|
value: function getPage(url) {
|
|
725
|
+
url = (0, _helpers.normalizeUrl)(url);
|
|
636
726
|
return this.pages[url];
|
|
637
727
|
}
|
|
638
728
|
}, {
|
|
639
729
|
key: 'getCurrentPage',
|
|
640
730
|
value: function getCurrentPage() {
|
|
641
|
-
return this.getPage(
|
|
731
|
+
return this.getPage((0, _helpers.getCurrentUrl)());
|
|
642
732
|
}
|
|
643
733
|
}, {
|
|
644
734
|
key: 'exists',
|
|
645
735
|
value: function exists(url) {
|
|
736
|
+
url = (0, _helpers.normalizeUrl)(url);
|
|
646
737
|
return url in this.pages;
|
|
647
738
|
}
|
|
648
739
|
}, {
|
|
@@ -664,130 +755,6 @@ var Cache = exports.Cache = function () {
|
|
|
664
755
|
|
|
665
756
|
exports.default = Cache;
|
|
666
757
|
|
|
667
|
-
/***/ }),
|
|
668
|
-
/* 6 */
|
|
669
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
670
|
-
|
|
671
|
-
"use strict";
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
Object.defineProperty(exports, "__esModule", {
|
|
675
|
-
value: true
|
|
676
|
-
});
|
|
677
|
-
|
|
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; };
|
|
679
|
-
|
|
680
|
-
var _helpers = __webpack_require__(1);
|
|
681
|
-
|
|
682
|
-
var loadPage = function loadPage(data, popstate) {
|
|
683
|
-
var _this = this;
|
|
684
|
-
|
|
685
|
-
// create array for storing animation promises
|
|
686
|
-
var animationPromises = [],
|
|
687
|
-
xhrPromise = void 0;
|
|
688
|
-
var animateOut = function animateOut() {
|
|
689
|
-
_this.triggerEvent('animationOutStart');
|
|
690
|
-
|
|
691
|
-
// handle classes
|
|
692
|
-
document.documentElement.classList.add('is-changing');
|
|
693
|
-
document.documentElement.classList.add('is-leaving');
|
|
694
|
-
document.documentElement.classList.add('is-animating');
|
|
695
|
-
if (popstate) {
|
|
696
|
-
document.documentElement.classList.add('is-popstate');
|
|
697
|
-
}
|
|
698
|
-
document.documentElement.classList.add('to-' + (0, _helpers.classify)(data.url));
|
|
699
|
-
|
|
700
|
-
// animation promise stuff
|
|
701
|
-
animationPromises = _this.getAnimationPromises('out');
|
|
702
|
-
Promise.all(animationPromises).then(function () {
|
|
703
|
-
_this.triggerEvent('animationOutDone');
|
|
704
|
-
});
|
|
705
|
-
|
|
706
|
-
// create history record if this is not a popstate call
|
|
707
|
-
if (!popstate) {
|
|
708
|
-
// create pop element with or without anchor
|
|
709
|
-
var state = void 0;
|
|
710
|
-
if (_this.scrollToElement != null) {
|
|
711
|
-
state = data.url + _this.scrollToElement;
|
|
712
|
-
} else {
|
|
713
|
-
state = data.url;
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
(0, _helpers.createHistoryRecord)(state);
|
|
717
|
-
}
|
|
718
|
-
};
|
|
719
|
-
|
|
720
|
-
this.triggerEvent('transitionStart', popstate);
|
|
721
|
-
|
|
722
|
-
// set transition object
|
|
723
|
-
if (data.customTransition != null) {
|
|
724
|
-
this.updateTransition(window.location.pathname, data.url, data.customTransition);
|
|
725
|
-
document.documentElement.classList.add('to-' + (0, _helpers.classify)(data.customTransition));
|
|
726
|
-
} else {
|
|
727
|
-
this.updateTransition(window.location.pathname, data.url);
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
// start/skip animation
|
|
731
|
-
if (!popstate || this.options.animateHistoryBrowsing) {
|
|
732
|
-
animateOut();
|
|
733
|
-
} else {
|
|
734
|
-
this.triggerEvent('animationSkipped');
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
// start/skip loading of page
|
|
738
|
-
if (this.cache.exists(data.url)) {
|
|
739
|
-
xhrPromise = new Promise(function (resolve) {
|
|
740
|
-
resolve();
|
|
741
|
-
});
|
|
742
|
-
this.triggerEvent('pageRetrievedFromCache');
|
|
743
|
-
} else {
|
|
744
|
-
if (!this.preloadPromise || this.preloadPromise.route != data.url) {
|
|
745
|
-
xhrPromise = new Promise(function (resolve, reject) {
|
|
746
|
-
(0, _helpers.fetch)(_extends({}, data, { headers: _this.options.requestHeaders }), function (response) {
|
|
747
|
-
if (response.status === 500) {
|
|
748
|
-
_this.triggerEvent('serverError');
|
|
749
|
-
reject(data.url);
|
|
750
|
-
return;
|
|
751
|
-
} else {
|
|
752
|
-
// get json data
|
|
753
|
-
var page = _this.getPageData(response);
|
|
754
|
-
if (page != null) {
|
|
755
|
-
page.url = data.url;
|
|
756
|
-
} else {
|
|
757
|
-
reject(data.url);
|
|
758
|
-
return;
|
|
759
|
-
}
|
|
760
|
-
// render page
|
|
761
|
-
_this.cache.cacheUrl(page);
|
|
762
|
-
_this.triggerEvent('pageLoaded');
|
|
763
|
-
}
|
|
764
|
-
resolve();
|
|
765
|
-
});
|
|
766
|
-
});
|
|
767
|
-
} else {
|
|
768
|
-
xhrPromise = this.preloadPromise;
|
|
769
|
-
}
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
// when everything is ready, handle the outcome
|
|
773
|
-
Promise.all(animationPromises.concat([xhrPromise])).then(function () {
|
|
774
|
-
// render page
|
|
775
|
-
_this.renderPage(_this.cache.getPage(data.url), popstate);
|
|
776
|
-
_this.preloadPromise = null;
|
|
777
|
-
}).catch(function (errorUrl) {
|
|
778
|
-
// rewrite the skipPopStateHandling function to redirect manually when the history.go is processed
|
|
779
|
-
_this.options.skipPopStateHandling = function () {
|
|
780
|
-
window.location = errorUrl;
|
|
781
|
-
return true;
|
|
782
|
-
};
|
|
783
|
-
|
|
784
|
-
// go back to the actual page were still at
|
|
785
|
-
window.history.go(-1);
|
|
786
|
-
});
|
|
787
|
-
};
|
|
788
|
-
|
|
789
|
-
exports.default = loadPage;
|
|
790
|
-
|
|
791
758
|
/***/ }),
|
|
792
759
|
/* 7 */
|
|
793
760
|
/***/ (function(module, exports, __webpack_require__) {
|
|
@@ -827,7 +794,7 @@ var createHistoryRecord = function createHistoryRecord(url) {
|
|
|
827
794
|
url: url || window.location.href.split(window.location.hostname)[1],
|
|
828
795
|
random: Math.random(),
|
|
829
796
|
source: 'swup'
|
|
830
|
-
}, document.
|
|
797
|
+
}, document.title, url || window.location.href.split(window.location.hostname)[1]);
|
|
831
798
|
};
|
|
832
799
|
|
|
833
800
|
exports.default = createHistoryRecord;
|
|
@@ -843,37 +810,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
843
810
|
value: true
|
|
844
811
|
});
|
|
845
812
|
|
|
846
|
-
var
|
|
847
|
-
|
|
848
|
-
var _utils = __webpack_require__(0);
|
|
813
|
+
var _utils = __webpack_require__(1);
|
|
849
814
|
|
|
850
815
|
var getDataFromHtml = function getDataFromHtml(html, containers) {
|
|
851
816
|
var fakeDom = document.createElement('html');
|
|
852
817
|
fakeDom.innerHTML = html;
|
|
853
818
|
var blocks = [];
|
|
854
819
|
|
|
855
|
-
|
|
856
|
-
if (
|
|
857
|
-
|
|
858
|
-
return
|
|
859
|
-
v: null
|
|
860
|
-
};
|
|
820
|
+
containers.forEach(function (selector) {
|
|
821
|
+
if ((0, _utils.query)(selector, fakeDom) == null) {
|
|
822
|
+
console.warn('[swup] Container ' + selector + ' not found on page.');
|
|
823
|
+
return null;
|
|
861
824
|
} else {
|
|
862
|
-
(0, _utils.queryAll)(
|
|
863
|
-
|
|
864
|
-
|
|
825
|
+
if ((0, _utils.queryAll)(selector).length !== (0, _utils.queryAll)(selector, fakeDom).length) {
|
|
826
|
+
console.warn('[swup] Mismatched number of containers found on new page.');
|
|
827
|
+
}
|
|
828
|
+
(0, _utils.queryAll)(selector).forEach(function (item, index) {
|
|
829
|
+
(0, _utils.queryAll)(selector, fakeDom)[index].setAttribute('data-swup', blocks.length);
|
|
830
|
+
blocks.push((0, _utils.queryAll)(selector, fakeDom)[index].outerHTML);
|
|
865
831
|
});
|
|
866
832
|
}
|
|
867
|
-
};
|
|
868
|
-
|
|
869
|
-
for (var i = 0; i < containers.length; i++) {
|
|
870
|
-
var _ret = _loop(i);
|
|
871
|
-
|
|
872
|
-
if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
|
|
873
|
-
}
|
|
833
|
+
});
|
|
874
834
|
|
|
875
835
|
var json = {
|
|
876
|
-
title: fakeDom.querySelector('title').innerText,
|
|
836
|
+
title: (fakeDom.querySelector('title') || {}).innerText,
|
|
877
837
|
pageClass: fakeDom.querySelector('body').className,
|
|
878
838
|
originalContent: html,
|
|
879
839
|
blocks: blocks
|
|
@@ -946,22 +906,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
946
906
|
value: true
|
|
947
907
|
});
|
|
948
908
|
var transitionEnd = function transitionEnd() {
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
MozTransition: 'transitionend',
|
|
954
|
-
OTransition: 'oTransitionEnd otransitionend',
|
|
955
|
-
transition: 'transitionend'
|
|
956
|
-
};
|
|
957
|
-
|
|
958
|
-
for (var name in transEndEventNames) {
|
|
959
|
-
if (el.style[name] !== undefined) {
|
|
960
|
-
return transEndEventNames[name];
|
|
961
|
-
}
|
|
909
|
+
if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) {
|
|
910
|
+
return 'webkitTransitionEnd';
|
|
911
|
+
} else {
|
|
912
|
+
return 'transitionend';
|
|
962
913
|
}
|
|
963
|
-
|
|
964
|
-
return false;
|
|
965
914
|
};
|
|
966
915
|
|
|
967
916
|
exports.default = transitionEnd;
|
|
@@ -973,6 +922,26 @@ exports.default = transitionEnd;
|
|
|
973
922
|
"use strict";
|
|
974
923
|
|
|
975
924
|
|
|
925
|
+
Object.defineProperty(exports, "__esModule", {
|
|
926
|
+
value: true
|
|
927
|
+
});
|
|
928
|
+
var transitionProperty = function transitionProperty() {
|
|
929
|
+
if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) {
|
|
930
|
+
return 'WebkitTransition';
|
|
931
|
+
} else {
|
|
932
|
+
return 'transition';
|
|
933
|
+
}
|
|
934
|
+
};
|
|
935
|
+
|
|
936
|
+
exports.default = transitionProperty;
|
|
937
|
+
|
|
938
|
+
/***/ }),
|
|
939
|
+
/* 13 */
|
|
940
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
941
|
+
|
|
942
|
+
"use strict";
|
|
943
|
+
|
|
944
|
+
|
|
976
945
|
Object.defineProperty(exports, "__esModule", {
|
|
977
946
|
value: true
|
|
978
947
|
});
|
|
@@ -983,7 +952,7 @@ var getCurrentUrl = function getCurrentUrl() {
|
|
|
983
952
|
exports.default = getCurrentUrl;
|
|
984
953
|
|
|
985
954
|
/***/ }),
|
|
986
|
-
/*
|
|
955
|
+
/* 14 */
|
|
987
956
|
/***/ (function(module, exports, __webpack_require__) {
|
|
988
957
|
|
|
989
958
|
"use strict";
|
|
@@ -993,31 +962,50 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
993
962
|
value: true
|
|
994
963
|
});
|
|
995
964
|
|
|
996
|
-
var
|
|
965
|
+
var _Link = __webpack_require__(2);
|
|
966
|
+
|
|
967
|
+
var _Link2 = _interopRequireDefault(_Link);
|
|
968
|
+
|
|
969
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
970
|
+
|
|
971
|
+
var normalizeUrl = function normalizeUrl(url) {
|
|
972
|
+
return new _Link2.default(url).getAddress();
|
|
973
|
+
};
|
|
974
|
+
|
|
975
|
+
exports.default = normalizeUrl;
|
|
976
|
+
|
|
977
|
+
/***/ }),
|
|
978
|
+
/* 15 */
|
|
979
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
980
|
+
|
|
981
|
+
"use strict";
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
Object.defineProperty(exports, "__esModule", {
|
|
985
|
+
value: true
|
|
986
|
+
});
|
|
987
|
+
|
|
988
|
+
var _utils = __webpack_require__(1);
|
|
997
989
|
|
|
998
990
|
var markSwupElements = function markSwupElements(element, containers) {
|
|
999
991
|
var blocks = 0;
|
|
1000
992
|
|
|
1001
|
-
|
|
1002
|
-
if (
|
|
1003
|
-
console.warn('
|
|
993
|
+
containers.forEach(function (selector) {
|
|
994
|
+
if ((0, _utils.query)(selector, element) == null) {
|
|
995
|
+
console.warn('[swup] Container ' + selector + ' not found on page.');
|
|
1004
996
|
} else {
|
|
1005
|
-
(0, _utils.queryAll)(
|
|
1006
|
-
(0, _utils.queryAll)(
|
|
997
|
+
(0, _utils.queryAll)(selector).forEach(function (item, index) {
|
|
998
|
+
(0, _utils.queryAll)(selector, element)[index].setAttribute('data-swup', blocks);
|
|
1007
999
|
blocks++;
|
|
1008
1000
|
});
|
|
1009
1001
|
}
|
|
1010
|
-
};
|
|
1011
|
-
|
|
1012
|
-
for (var i = 0; i < containers.length; i++) {
|
|
1013
|
-
_loop(i);
|
|
1014
|
-
}
|
|
1002
|
+
});
|
|
1015
1003
|
};
|
|
1016
1004
|
|
|
1017
1005
|
exports.default = markSwupElements;
|
|
1018
1006
|
|
|
1019
1007
|
/***/ }),
|
|
1020
|
-
/*
|
|
1008
|
+
/* 16 */
|
|
1021
1009
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1022
1010
|
|
|
1023
1011
|
"use strict";
|
|
@@ -1026,60 +1014,151 @@ exports.default = markSwupElements;
|
|
|
1026
1014
|
Object.defineProperty(exports, "__esModule", {
|
|
1027
1015
|
value: true
|
|
1028
1016
|
});
|
|
1017
|
+
var cleanupAnimationClasses = function cleanupAnimationClasses() {
|
|
1018
|
+
document.documentElement.className.split(' ').forEach(function (classItem) {
|
|
1019
|
+
if (
|
|
1020
|
+
// remove "to-{page}" classes
|
|
1021
|
+
new RegExp('^to-').test(classItem) ||
|
|
1022
|
+
// remove all other classes
|
|
1023
|
+
classItem === 'is-changing' || classItem === 'is-rendering' || classItem === 'is-popstate') {
|
|
1024
|
+
document.documentElement.classList.remove(classItem);
|
|
1025
|
+
}
|
|
1026
|
+
});
|
|
1027
|
+
};
|
|
1029
1028
|
|
|
1030
|
-
|
|
1029
|
+
exports.default = cleanupAnimationClasses;
|
|
1031
1030
|
|
|
1032
|
-
|
|
1031
|
+
/***/ }),
|
|
1032
|
+
/* 17 */
|
|
1033
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1033
1034
|
|
|
1034
|
-
|
|
1035
|
-
function Link(elementOrUrl) {
|
|
1036
|
-
_classCallCheck(this, Link);
|
|
1035
|
+
"use strict";
|
|
1037
1036
|
|
|
1038
|
-
if (elementOrUrl instanceof Element || elementOrUrl instanceof SVGElement) {
|
|
1039
|
-
this.link = elementOrUrl;
|
|
1040
|
-
} else {
|
|
1041
|
-
this.link = document.createElement('a');
|
|
1042
|
-
this.link.href = elementOrUrl;
|
|
1043
|
-
}
|
|
1044
|
-
}
|
|
1045
1037
|
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1038
|
+
Object.defineProperty(exports, "__esModule", {
|
|
1039
|
+
value: true
|
|
1040
|
+
});
|
|
1041
|
+
|
|
1042
|
+
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
1043
|
+
|
|
1044
|
+
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; };
|
|
1045
|
+
|
|
1046
|
+
var _helpers = __webpack_require__(0);
|
|
1047
|
+
|
|
1048
|
+
var loadPage = function loadPage(data, popstate) {
|
|
1049
|
+
var _this = this;
|
|
1050
|
+
|
|
1051
|
+
// create array for storing animation promises
|
|
1052
|
+
var animationPromises = [],
|
|
1053
|
+
xhrPromise = void 0;
|
|
1054
|
+
var animateOut = function animateOut() {
|
|
1055
|
+
_this.triggerEvent('animationOutStart');
|
|
1056
|
+
|
|
1057
|
+
// handle classes
|
|
1058
|
+
document.documentElement.classList.add('is-changing');
|
|
1059
|
+
document.documentElement.classList.add('is-leaving');
|
|
1060
|
+
document.documentElement.classList.add('is-animating');
|
|
1061
|
+
if (popstate) {
|
|
1062
|
+
document.documentElement.classList.add('is-popstate');
|
|
1054
1063
|
}
|
|
1055
|
-
|
|
1056
|
-
key: 'getAddress',
|
|
1057
|
-
value: function getAddress() {
|
|
1058
|
-
var path = this.link.pathname + this.link.search;
|
|
1064
|
+
document.documentElement.classList.add('to-' + (0, _helpers.classify)(data.url));
|
|
1059
1065
|
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1066
|
+
// animation promise stuff
|
|
1067
|
+
animationPromises = _this.getAnimationPromises('out');
|
|
1068
|
+
Promise.all(animationPromises).then(function () {
|
|
1069
|
+
_this.triggerEvent('animationOutDone');
|
|
1070
|
+
});
|
|
1063
1071
|
|
|
1064
|
-
|
|
1065
|
-
|
|
1072
|
+
// create history record if this is not a popstate call
|
|
1073
|
+
if (!popstate) {
|
|
1074
|
+
// create pop element with or without anchor
|
|
1075
|
+
var state = void 0;
|
|
1076
|
+
if (_this.scrollToElement != null) {
|
|
1077
|
+
state = data.url + _this.scrollToElement;
|
|
1078
|
+
} else {
|
|
1079
|
+
state = data.url;
|
|
1066
1080
|
}
|
|
1067
|
-
|
|
1081
|
+
|
|
1082
|
+
(0, _helpers.createHistoryRecord)(state);
|
|
1068
1083
|
}
|
|
1069
|
-
}
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1084
|
+
};
|
|
1085
|
+
|
|
1086
|
+
this.triggerEvent('transitionStart', popstate);
|
|
1087
|
+
|
|
1088
|
+
// set transition object
|
|
1089
|
+
if (data.customTransition != null) {
|
|
1090
|
+
this.updateTransition(window.location.pathname, data.url, data.customTransition);
|
|
1091
|
+
document.documentElement.classList.add('to-' + (0, _helpers.classify)(data.customTransition));
|
|
1092
|
+
} else {
|
|
1093
|
+
this.updateTransition(window.location.pathname, data.url);
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
// start/skip animation
|
|
1097
|
+
if (!popstate || this.options.animateHistoryBrowsing) {
|
|
1098
|
+
animateOut();
|
|
1099
|
+
} else {
|
|
1100
|
+
this.triggerEvent('animationSkipped');
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
// start/skip loading of page
|
|
1104
|
+
if (this.cache.exists(data.url)) {
|
|
1105
|
+
xhrPromise = new Promise(function (resolve) {
|
|
1106
|
+
resolve(_this.cache.getPage(data.url));
|
|
1107
|
+
});
|
|
1108
|
+
this.triggerEvent('pageRetrievedFromCache');
|
|
1109
|
+
} else {
|
|
1110
|
+
if (!this.preloadPromise || this.preloadPromise.route != data.url) {
|
|
1111
|
+
xhrPromise = new Promise(function (resolve, reject) {
|
|
1112
|
+
(0, _helpers.fetch)(_extends({}, data, { headers: _this.options.requestHeaders }), function (response) {
|
|
1113
|
+
if (response.status === 500) {
|
|
1114
|
+
_this.triggerEvent('serverError');
|
|
1115
|
+
reject(data.url);
|
|
1116
|
+
return;
|
|
1117
|
+
} else {
|
|
1118
|
+
// get json data
|
|
1119
|
+
var page = _this.getPageData(response);
|
|
1120
|
+
if (page != null && page.blocks.length > 0) {
|
|
1121
|
+
page.url = data.url;
|
|
1122
|
+
} else {
|
|
1123
|
+
reject(data.url);
|
|
1124
|
+
return;
|
|
1125
|
+
}
|
|
1126
|
+
// render page
|
|
1127
|
+
_this.cache.cacheUrl(page);
|
|
1128
|
+
_this.triggerEvent('pageLoaded');
|
|
1129
|
+
resolve(page);
|
|
1130
|
+
}
|
|
1131
|
+
});
|
|
1132
|
+
});
|
|
1133
|
+
} else {
|
|
1134
|
+
xhrPromise = this.preloadPromise;
|
|
1073
1135
|
}
|
|
1074
|
-
}
|
|
1136
|
+
}
|
|
1075
1137
|
|
|
1076
|
-
|
|
1077
|
-
|
|
1138
|
+
// when everything is ready, handle the outcome
|
|
1139
|
+
Promise.all([xhrPromise].concat(animationPromises)).then(function (_ref) {
|
|
1140
|
+
var _ref2 = _slicedToArray(_ref, 1),
|
|
1141
|
+
pageData = _ref2[0];
|
|
1078
1142
|
|
|
1079
|
-
|
|
1143
|
+
// render page
|
|
1144
|
+
_this.renderPage(pageData, popstate);
|
|
1145
|
+
_this.preloadPromise = null;
|
|
1146
|
+
}).catch(function (errorUrl) {
|
|
1147
|
+
// rewrite the skipPopStateHandling function to redirect manually when the history.go is processed
|
|
1148
|
+
_this.options.skipPopStateHandling = function () {
|
|
1149
|
+
window.location = errorUrl;
|
|
1150
|
+
return true;
|
|
1151
|
+
};
|
|
1152
|
+
|
|
1153
|
+
// go back to the actual page were still at
|
|
1154
|
+
window.history.go(-1);
|
|
1155
|
+
});
|
|
1156
|
+
};
|
|
1157
|
+
|
|
1158
|
+
exports.default = loadPage;
|
|
1080
1159
|
|
|
1081
1160
|
/***/ }),
|
|
1082
|
-
/*
|
|
1161
|
+
/* 18 */
|
|
1083
1162
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1084
1163
|
|
|
1085
1164
|
"use strict";
|
|
@@ -1091,26 +1170,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
1091
1170
|
|
|
1092
1171
|
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; };
|
|
1093
1172
|
|
|
1094
|
-
var
|
|
1095
|
-
|
|
1096
|
-
var _helpers = __webpack_require__(1);
|
|
1173
|
+
var _helpers = __webpack_require__(0);
|
|
1097
1174
|
|
|
1098
1175
|
var renderPage = function renderPage(page, popstate) {
|
|
1099
1176
|
var _this = this;
|
|
1100
1177
|
|
|
1101
1178
|
document.documentElement.classList.remove('is-leaving');
|
|
1102
1179
|
|
|
1180
|
+
var isCurrentPage = this.getCurrentUrl() === page.url;
|
|
1181
|
+
if (!isCurrentPage) return;
|
|
1182
|
+
|
|
1103
1183
|
// replace state in case the url was redirected
|
|
1104
|
-
var
|
|
1105
|
-
if (window.location.pathname !==
|
|
1184
|
+
var url = new _helpers.Link(page.responseURL).getPath();
|
|
1185
|
+
if (window.location.pathname !== url) {
|
|
1106
1186
|
window.history.replaceState({
|
|
1107
|
-
url:
|
|
1187
|
+
url: url,
|
|
1108
1188
|
random: Math.random(),
|
|
1109
1189
|
source: 'swup'
|
|
1110
|
-
}, document.title,
|
|
1190
|
+
}, document.title, url);
|
|
1111
1191
|
|
|
1112
1192
|
// save new record for redirected url
|
|
1113
|
-
this.cache.cacheUrl(_extends({}, page, { url:
|
|
1193
|
+
this.cache.cacheUrl(_extends({}, page, { url: url }));
|
|
1114
1194
|
}
|
|
1115
1195
|
|
|
1116
1196
|
// only add for non-popstate transitions
|
|
@@ -1119,15 +1199,12 @@ var renderPage = function renderPage(page, popstate) {
|
|
|
1119
1199
|
}
|
|
1120
1200
|
|
|
1121
1201
|
this.triggerEvent('willReplaceContent', popstate);
|
|
1122
|
-
|
|
1123
1202
|
// replace blocks
|
|
1124
1203
|
for (var i = 0; i < page.blocks.length; i++) {
|
|
1125
1204
|
document.body.querySelector('[data-swup="' + i + '"]').outerHTML = page.blocks[i];
|
|
1126
1205
|
}
|
|
1127
|
-
|
|
1128
1206
|
// set title
|
|
1129
1207
|
document.title = page.title;
|
|
1130
|
-
|
|
1131
1208
|
this.triggerEvent('contentReplaced', popstate);
|
|
1132
1209
|
this.triggerEvent('pageView', popstate);
|
|
1133
1210
|
|
|
@@ -1150,12 +1227,7 @@ var renderPage = function renderPage(page, popstate) {
|
|
|
1150
1227
|
Promise.all(animationPromises).then(function () {
|
|
1151
1228
|
_this.triggerEvent('animationInDone');
|
|
1152
1229
|
_this.triggerEvent('transitionEnd', popstate);
|
|
1153
|
-
|
|
1154
|
-
document.documentElement.className.split(' ').forEach(function (classItem) {
|
|
1155
|
-
if (new RegExp('^to-').test(classItem) || classItem === 'is-changing' || classItem === 'is-rendering' || classItem === 'is-popstate') {
|
|
1156
|
-
document.documentElement.classList.remove(classItem);
|
|
1157
|
-
}
|
|
1158
|
-
});
|
|
1230
|
+
_this.cleanupAnimationClasses();
|
|
1159
1231
|
});
|
|
1160
1232
|
} else {
|
|
1161
1233
|
this.triggerEvent('transitionEnd', popstate);
|
|
@@ -1168,7 +1240,7 @@ var renderPage = function renderPage(page, popstate) {
|
|
|
1168
1240
|
exports.default = renderPage;
|
|
1169
1241
|
|
|
1170
1242
|
/***/ }),
|
|
1171
|
-
/*
|
|
1243
|
+
/* 19 */
|
|
1172
1244
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1173
1245
|
|
|
1174
1246
|
"use strict";
|
|
@@ -1195,7 +1267,7 @@ var triggerEvent = function triggerEvent(eventName, originalEvent) {
|
|
|
1195
1267
|
exports.default = triggerEvent;
|
|
1196
1268
|
|
|
1197
1269
|
/***/ }),
|
|
1198
|
-
/*
|
|
1270
|
+
/* 20 */
|
|
1199
1271
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1200
1272
|
|
|
1201
1273
|
"use strict";
|
|
@@ -1215,7 +1287,7 @@ var on = function on(event, handler) {
|
|
|
1215
1287
|
exports.default = on;
|
|
1216
1288
|
|
|
1217
1289
|
/***/ }),
|
|
1218
|
-
/*
|
|
1290
|
+
/* 21 */
|
|
1219
1291
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1220
1292
|
|
|
1221
1293
|
"use strict";
|
|
@@ -1255,7 +1327,7 @@ var off = function off(event, handler) {
|
|
|
1255
1327
|
exports.default = off;
|
|
1256
1328
|
|
|
1257
1329
|
/***/ }),
|
|
1258
|
-
/*
|
|
1330
|
+
/* 22 */
|
|
1259
1331
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1260
1332
|
|
|
1261
1333
|
"use strict";
|
|
@@ -1276,7 +1348,7 @@ var updateTransition = function updateTransition(from, to, custom) {
|
|
|
1276
1348
|
exports.default = updateTransition;
|
|
1277
1349
|
|
|
1278
1350
|
/***/ }),
|
|
1279
|
-
/*
|
|
1351
|
+
/* 23 */
|
|
1280
1352
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1281
1353
|
|
|
1282
1354
|
"use strict";
|
|
@@ -1286,7 +1358,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
1286
1358
|
value: true
|
|
1287
1359
|
});
|
|
1288
1360
|
|
|
1289
|
-
var _utils = __webpack_require__(
|
|
1361
|
+
var _utils = __webpack_require__(1);
|
|
1290
1362
|
|
|
1291
1363
|
var getAnchorElement = function getAnchorElement(hash) {
|
|
1292
1364
|
if (!hash) {
|
|
@@ -1307,7 +1379,7 @@ var getAnchorElement = function getAnchorElement(hash) {
|
|
|
1307
1379
|
exports.default = getAnchorElement;
|
|
1308
1380
|
|
|
1309
1381
|
/***/ }),
|
|
1310
|
-
/*
|
|
1382
|
+
/* 24 */
|
|
1311
1383
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1312
1384
|
|
|
1313
1385
|
"use strict";
|
|
@@ -1317,14 +1389,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
1317
1389
|
value: true
|
|
1318
1390
|
});
|
|
1319
1391
|
|
|
1320
|
-
var _utils = __webpack_require__(
|
|
1392
|
+
var _utils = __webpack_require__(1);
|
|
1321
1393
|
|
|
1322
|
-
var _helpers = __webpack_require__(
|
|
1394
|
+
var _helpers = __webpack_require__(0);
|
|
1323
1395
|
|
|
1324
1396
|
var getAnimationPromises = function getAnimationPromises() {
|
|
1397
|
+
var selector = this.options.animationSelector;
|
|
1398
|
+
var durationProperty = (0, _helpers.transitionProperty)() + 'Duration';
|
|
1325
1399
|
var promises = [];
|
|
1326
|
-
var animatedElements = (0, _utils.queryAll)(
|
|
1400
|
+
var animatedElements = (0, _utils.queryAll)(selector, document.body);
|
|
1401
|
+
|
|
1402
|
+
if (!animatedElements.length) {
|
|
1403
|
+
console.warn('[swup] No animated elements found by selector ' + selector);
|
|
1404
|
+
return [Promise.resolve()];
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1327
1407
|
animatedElements.forEach(function (element) {
|
|
1408
|
+
var transitionDuration = window.getComputedStyle(element)[durationProperty];
|
|
1409
|
+
// Resolve immediately if no transition defined
|
|
1410
|
+
if (!transitionDuration || transitionDuration == '0s') {
|
|
1411
|
+
console.warn('[swup] No CSS transition duration defined for element of selector ' + selector);
|
|
1412
|
+
promises.push(Promise.resolve());
|
|
1413
|
+
return;
|
|
1414
|
+
}
|
|
1328
1415
|
var promise = new Promise(function (resolve) {
|
|
1329
1416
|
element.addEventListener((0, _helpers.transitionEnd)(), function (event) {
|
|
1330
1417
|
if (element == event.target) {
|
|
@@ -1334,13 +1421,14 @@ var getAnimationPromises = function getAnimationPromises() {
|
|
|
1334
1421
|
});
|
|
1335
1422
|
promises.push(promise);
|
|
1336
1423
|
});
|
|
1424
|
+
|
|
1337
1425
|
return promises;
|
|
1338
1426
|
};
|
|
1339
1427
|
|
|
1340
1428
|
exports.default = getAnimationPromises;
|
|
1341
1429
|
|
|
1342
1430
|
/***/ }),
|
|
1343
|
-
/*
|
|
1431
|
+
/* 25 */
|
|
1344
1432
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1345
1433
|
|
|
1346
1434
|
"use strict";
|
|
@@ -1350,7 +1438,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
1350
1438
|
value: true
|
|
1351
1439
|
});
|
|
1352
1440
|
|
|
1353
|
-
var _helpers = __webpack_require__(
|
|
1441
|
+
var _helpers = __webpack_require__(0);
|
|
1354
1442
|
|
|
1355
1443
|
var getPageData = function getPageData(request) {
|
|
1356
1444
|
// this method can be replaced in case other content than html is expected to be received from server
|
|
@@ -1362,7 +1450,7 @@ var getPageData = function getPageData(request) {
|
|
|
1362
1450
|
if (pageObject) {
|
|
1363
1451
|
pageObject.responseURL = request.responseURL ? request.responseURL : window.location.href;
|
|
1364
1452
|
} else {
|
|
1365
|
-
console.warn('Received page is invalid.');
|
|
1453
|
+
console.warn('[swup] Received page is invalid.');
|
|
1366
1454
|
return null;
|
|
1367
1455
|
}
|
|
1368
1456
|
|
|
@@ -1372,7 +1460,7 @@ var getPageData = function getPageData(request) {
|
|
|
1372
1460
|
exports.default = getPageData;
|
|
1373
1461
|
|
|
1374
1462
|
/***/ }),
|
|
1375
|
-
/*
|
|
1463
|
+
/* 26 */
|
|
1376
1464
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1377
1465
|
|
|
1378
1466
|
"use strict";
|