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.
@@ -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__(8);
147
+ var _classify = __webpack_require__(7);
110
148
 
111
149
  var _classify2 = _interopRequireDefault(_classify);
112
150
 
113
- var _createHistoryRecord = __webpack_require__(9);
151
+ var _createHistoryRecord = __webpack_require__(8);
114
152
 
115
153
  var _createHistoryRecord2 = _interopRequireDefault(_createHistoryRecord);
116
154
 
117
- var _getDataFromHtml = __webpack_require__(10);
155
+ var _getDataFromHtml = __webpack_require__(9);
118
156
 
119
157
  var _getDataFromHtml2 = _interopRequireDefault(_getDataFromHtml);
120
158
 
121
- var _fetch = __webpack_require__(11);
159
+ var _fetch = __webpack_require__(10);
122
160
 
123
161
  var _fetch2 = _interopRequireDefault(_fetch);
124
162
 
125
- var _transitionEnd = __webpack_require__(12);
163
+ var _transitionEnd = __webpack_require__(11);
126
164
 
127
165
  var _transitionEnd2 = _interopRequireDefault(_transitionEnd);
128
166
 
129
- var _getCurrentUrl = __webpack_require__(13);
167
+ var _getCurrentUrl = __webpack_require__(12);
130
168
 
131
169
  var _getCurrentUrl2 = _interopRequireDefault(_getCurrentUrl);
132
170
 
133
- var _markSwupElements = __webpack_require__(14);
171
+ var _markSwupElements = __webpack_require__(13);
134
172
 
135
173
  var _markSwupElements2 = _interopRequireDefault(_markSwupElements);
136
174
 
137
- var _Link = __webpack_require__(15);
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 _delegate = __webpack_require__(4);
223
+ var _delegateIt = __webpack_require__(4);
216
224
 
217
- var _delegate2 = _interopRequireDefault(_delegate);
225
+ var _delegateIt2 = _interopRequireDefault(_delegateIt);
218
226
 
219
- var _Cache = __webpack_require__(6);
227
+ var _Cache = __webpack_require__(5);
220
228
 
221
229
  var _Cache2 = _interopRequireDefault(_Cache);
222
230
 
223
- var _loadPage = __webpack_require__(7);
231
+ var _loadPage = __webpack_require__(6);
224
232
 
225
233
  var _loadPage2 = _interopRequireDefault(_loadPage);
226
234
 
227
- var _renderPage = __webpack_require__(16);
235
+ var _renderPage = __webpack_require__(15);
228
236
 
229
237
  var _renderPage2 = _interopRequireDefault(_renderPage);
230
238
 
231
- var _triggerEvent = __webpack_require__(17);
239
+ var _triggerEvent = __webpack_require__(16);
232
240
 
233
241
  var _triggerEvent2 = _interopRequireDefault(_triggerEvent);
234
242
 
235
- var _on = __webpack_require__(18);
243
+ var _on = __webpack_require__(17);
236
244
 
237
245
  var _on2 = _interopRequireDefault(_on);
238
246
 
239
- var _off = __webpack_require__(19);
247
+ var _off = __webpack_require__(18);
240
248
 
241
249
  var _off2 = _interopRequireDefault(_off);
242
250
 
243
- var _updateTransition = __webpack_require__(20);
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__(1);
269
+ var _utils = __webpack_require__(0);
258
270
 
259
- var _helpers = __webpack_require__(0);
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 id of element to scroll to after render
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, _delegate2.default)(document, this.options.linkSelector, 'click', this.linkClickHandler.bind(this));
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 = document.querySelector(link.getHash());
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, exports, __webpack_require__) {
510
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
498
511
 
499
- var closest = __webpack_require__(5);
500
-
501
- /**
502
- * Delegates event to a selector.
503
- *
504
- * @param {Element} element
505
- * @param {String} selector
506
- * @param {String} type
507
- * @param {Function} callback
508
- * @param {Boolean} useCapture
509
- * @return {Object}
510
- */
511
- function delegate(element, selector, type, callback, useCapture) {
512
- var listenerFn = listener.apply(this, arguments);
513
-
514
- element.addEventListener(type, listenerFn, useCapture);
515
-
516
- return {
517
- destroy: function() {
518
- element.removeEventListener(type, listenerFn, useCapture);
519
- }
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
- * Finds closest match and invokes callback.
525
- *
526
- * @param {Element} element
527
- * @param {String} selector
528
- * @param {String} type
529
- * @param {Function} callback
530
- * @return {Function}
531
- */
532
- function listener(element, selector, type, callback) {
533
- return function(e) {
534
- e.delegateTarget = closest(e.target, selector);
535
-
536
- if (e.delegateTarget) {
537
- callback.call(element, e);
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
- module.exports = delegate;
543
-
544
-
545
- /***/ }),
546
- /* 5 */
547
- /***/ (function(module, exports) {
548
-
549
- var DOCUMENT_NODE_TYPE = 9;
550
-
551
- /**
552
- * A polyfill for Element.matches()
553
- */
554
- if (typeof Element !== 'undefined' && !Element.prototype.matches) {
555
- var proto = Element.prototype;
556
-
557
- proto.matches = proto.matchesSelector ||
558
- proto.mozMatchesSelector ||
559
- proto.msMatchesSelector ||
560
- proto.oMatchesSelector ||
561
- proto.webkitMatchesSelector;
562
- }
563
-
564
- /**
565
- * Finds the closest parent that matches a selector.
566
- *
567
- * @param {Element} element
568
- * @param {String} selector
569
- * @return {Function}
570
- */
571
- function closest (element, selector) {
572
- while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
573
- if (typeof element.matches === 'function' &&
574
- element.matches(selector)) {
575
- return element;
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
- element = element.parentNode;
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
- /* 6 */
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
- /* 7 */
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__(0);
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
- /* 8 */
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
- /* 9 */
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
- /* 10 */
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__(1);
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
- /* 11 */
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
- /* 12 */
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
- /* 13 */
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
- /* 14 */
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__(1);
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
- /* 15 */
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
- /* 16 */
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__(1);
1094
+ var _utils = __webpack_require__(0);
1078
1095
 
1079
- var _helpers = __webpack_require__(0);
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
- /* 17 */
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
- /* 18 */
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
- /* 19 */
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
- /* 20 */
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__(1);
1320
+ var _utils = __webpack_require__(0);
1273
1321
 
1274
- var _helpers = __webpack_require__(0);
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__(0);
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 _delegate = require('delegate');
14
+ var _delegateIt = require('delegate-it');
15
15
 
16
- var _delegate2 = _interopRequireDefault(_delegate);
16
+ var _delegateIt2 = _interopRequireDefault(_delegateIt);
17
17
 
18
18
  var _Cache = require('./modules/Cache');
19
19
 
@@ -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 id of element to scroll to after render
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, _delegate2.default)(document, this.options.linkSelector, 'click', this.linkClickHandler.bind(this));
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 = document.querySelector(link.getHash());
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;
@@ -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.13",
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-swup && start-server-and-test test:server http://localhost:8080 test:run",
13
- "test:instrument-swup": "nyc instrument --compact=false dist test/site",
12
+ "test": "npm run build && npm run test:instrument && start-server-and-test test:server http://localhost:8080 test:run",
13
+ "test:instrument": "nyc instrument --compact=false dist test/site/swup",
14
14
  "test:server": "http-server test/site",
15
15
  "test:run": "cypress run --record"
16
16
  },
@@ -27,23 +27,23 @@
27
27
  "transition"
28
28
  ],
29
29
  "dependencies": {
30
- "delegate": "3.1.3",
30
+ "delegate-it": "^3.0.1",
31
31
  "opencollective-postinstall": "^2.0.2"
32
32
  },
33
33
  "devDependencies": {
34
- "@cypress/code-coverage": "^1.10.1",
34
+ "@cypress/code-coverage": "^3.10.0",
35
35
  "@swup/prettier-config": "^1.0.0",
36
36
  "@swup/webpack-config": "^1.0.0",
37
37
  "babel-cli": "^6.26.0",
38
38
  "babel-loader": "^7.1.4",
39
39
  "babel-preset-es2015": "^6.24.1",
40
40
  "babel-preset-stage-0": "^6.24.1",
41
- "cypress": "^3.6.0",
42
- "http-server": "^0.11.1",
43
- "istanbul-lib-coverage": "^2.0.5",
44
- "nyc": "^14.1.1",
41
+ "cypress": "^10.0.2",
42
+ "http-server": "^14.1.1",
43
+ "istanbul-lib-coverage": "^3.2.0",
44
+ "nyc": "^15.1.0",
45
45
  "prettier": "1.17.0",
46
- "start-server-and-test": "^1.10.6",
46
+ "start-server-and-test": "^1.14.0",
47
47
  "uglifyjs-webpack-plugin": "^1.2.5",
48
48
  "webpack": "^4.8.3",
49
49
  "webpack-cli": "^3.3.2"
package/readme.md CHANGED
@@ -1,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
- Looking for **what's new in v2**? Head over [here](https://medium.com/@gmarcuk/introducing-swup-v2-814e40316dee), check [changelog](https://swup.js.org/other/changelog) for recent changes, or see all [swup repositories](https://github.com/swup/).
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
- - [Getting started](https://swup.js.org/getting-started)
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 javascript](https://swup.js.org/getting-started/reloading-javascript)
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
- - [Plugins](https://swup.js.org/plugins)
22
- - [Themes](https://swup.js.org/themes)
23
- - [CLI](https://swup.js.org/cli)
24
- - [CI/CD](https://swup.js.org/ci-cd)
25
- - [Changelog](https://swup.js.org//other/changelog)
26
- - [Contributions](https://swup.js.org/other/contributions)
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%">