unpoly-rails 3.3.0 → 3.5.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 614551454d692e572ca5c9a0a231ad5b8b94e916a04665e0644a624ce20844a8
4
- data.tar.gz: b9f1cf1029a6330314c49378a417da6f802630a8e2b9be7a6bc98c1bbcfdc0e5
3
+ metadata.gz: 4a1003cf5f2680708cd56e52541a8e39c5a2f55e35f8e977e78acc6be00538c7
4
+ data.tar.gz: '0549baecc0fcc89cb74cfe31b62836181bb8624bf678c1a79d9263e98872ec7a'
5
5
  SHA512:
6
- metadata.gz: 957eb63eee7f194196b454c0321eb1052f71582762378cd3190d94f9017885af6f035ab8622bc9df83b84a05793544614b1643486ca1e0f1d344ef1fdf3590ad
7
- data.tar.gz: 8ece3837631ec7cc14394996dba8c803bd49c73c25f9729ddf81a01e9ddfd4989e1a900435cad179157d115351cc6e24ac8c1f7f7a64b1d6ebaf3044b8088444
6
+ metadata.gz: 6ab0ce5fac95ce437045cfa6e75452f682eb1575eaa697c2ba2b7d73602116e5920a9e5dbd3b64a6d1bd10d3eed157da17e195717a7009edbbe5c4049fa54355
7
+ data.tar.gz: ed4bed0607a7e575071cef93e7654093bfc14399255e55efb83fff56c61040067a50b458b6871736d95b3b767936f09ef7a46dc9978fde6eb08bdb362502e334
@@ -55,9 +55,9 @@ var __webpack_exports__ = {};
55
55
  up.feedback.config.currentClasses.push('active');
56
56
  up.feedback.config.navSelectors.push('.nav', '.navbar');
57
57
  up.form.config.groupSelectors.unshift('.form-group');
58
- up.viewport.config.fixedTop.push('.navbar-fixed-top');
59
- up.viewport.config.fixedBottom.push('.navbar-fixed-bottom');
60
- up.viewport.config.anchoredRight.push('.navbar-fixed-top', '.navbar-fixed-bottom');
58
+ up.viewport.config.fixedTopSelectors.push('.navbar-fixed-top');
59
+ up.viewport.config.fixedBottomSelectors.push('.navbar-fixed-bottom');
60
+ up.viewport.config.anchoredRightSelectors.push('.navbar-fixed-top', '.navbar-fixed-bottom');
61
61
  up.fragment.config.badTargetClasses.push('row', /^col(-xs|-sm|-md|-lg)?(-\d+)?$/);
62
62
  up.layer.config.foreignOverlaySelectors.push('.modal:not(up-modal)', '.popover:not(up-popup)', '.dropdown-menu:not(up-popup)');
63
63
  __webpack_require__(1);
@@ -1 +1 @@
1
- (()=>{var o={303:(o,e,r)=>{"use strict";r.r(e)}},e={};function r(p){var t=e[p];if(void 0!==t)return t.exports;var n=e[p]={exports:{}};return o[p](n,n.exports,r),n.exports}r.r=o=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},up.feedback.config.currentClasses.push("active"),up.feedback.config.navSelectors.push(".nav",".navbar"),up.form.config.groupSelectors.unshift(".form-group"),up.viewport.config.fixedTop.push(".navbar-fixed-top"),up.viewport.config.fixedBottom.push(".navbar-fixed-bottom"),up.viewport.config.anchoredRight.push(".navbar-fixed-top",".navbar-fixed-bottom"),up.fragment.config.badTargetClasses.push("row",/^col(-xs|-sm|-md|-lg)?(-\d+)?$/),up.layer.config.foreignOverlaySelectors.push(".modal:not(up-modal)",".popover:not(up-popup)",".dropdown-menu:not(up-popup)"),r(303)})();
1
+ (()=>{var o={303:(o,p,u)=>{"use strict";u.r(p)}},p={};function u(e){var a=p[e];if(void 0!==a)return a.exports;var r=p[e]={exports:{}};return o[e](r,r.exports,u),r.exports}u.r=o=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"o",{value:!0})},up.feedback.config.currentClasses.push("active"),up.feedback.config.navSelectors.push(".nav",".navbar"),up.form.config.groupSelectors.unshift(".form-group"),up.viewport.config.fixedTopSelectors.push(".navbar-fixed-top"),up.viewport.config.fixedBottomSelectors.push(".navbar-fixed-bottom"),up.viewport.config.anchoredRightSelectors.push(".navbar-fixed-top",".navbar-fixed-bottom"),up.fragment.config.badTargetClasses.push("row",/^col(-xs|-sm|-md|-lg)?(-\d+)?$/),up.layer.config.foreignOverlaySelectors.push(".modal:not(up-modal)",".popover:not(up-popup)",".dropdown-menu:not(up-popup)"),u(303)})();
@@ -55,9 +55,9 @@ var __webpack_exports__ = {};
55
55
  up.feedback.config.currentClasses.push('active');
56
56
  up.feedback.config.navSelectors.push('.nav', '.navbar');
57
57
  up.form.config.groupSelectors.unshift('.form-group');
58
- up.viewport.config.fixedTop.push('.navbar.fixed-top');
59
- up.viewport.config.fixedBottom.push('.navbar.fixed-bottom');
60
- up.viewport.config.anchoredRight.push('.navbar.fixed-top', '.navbar.fixed-bottom');
58
+ up.viewport.config.fixedTopSelectors.push('.navbar.fixed-top');
59
+ up.viewport.config.fixedBottomSelectors.push('.navbar.fixed-bottom');
60
+ up.viewport.config.anchoredRightSelectors.push('.navbar.fixed-top', '.navbar.fixed-bottom');
61
61
  up.fragment.config.badTargetClasses.push('row', /^col(-xs|-sm|-md|-lg|-xl)?(-\d+)?$/, /^[mp][tblrxy]?-\d+$/);
62
62
  up.layer.config.foreignOverlaySelectors.push('.modal:not(up-modal)', '.popover:not(up-popup)', '.dropdown-menu:not(up-popup)');
63
63
  __webpack_require__(1);
@@ -1 +1 @@
1
- (()=>{var o={79:(o,e,r)=>{"use strict";r.r(e)}},e={};function r(p){var t=e[p];if(void 0!==t)return t.exports;var n=e[p]={exports:{}};return o[p](n,n.exports,r),n.exports}r.r=o=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},up.feedback.config.currentClasses.push("active"),up.feedback.config.navSelectors.push(".nav",".navbar"),up.form.config.groupSelectors.unshift(".form-group"),up.viewport.config.fixedTop.push(".navbar.fixed-top"),up.viewport.config.fixedBottom.push(".navbar.fixed-bottom"),up.viewport.config.anchoredRight.push(".navbar.fixed-top",".navbar.fixed-bottom"),up.fragment.config.badTargetClasses.push("row",/^col(-xs|-sm|-md|-lg|-xl)?(-\d+)?$/,/^[mp][tblrxy]?-\d+$/),up.layer.config.foreignOverlaySelectors.push(".modal:not(up-modal)",".popover:not(up-popup)",".dropdown-menu:not(up-popup)"),r(79)})();
1
+ (()=>{var o={79:(o,p,u)=>{"use strict";u.r(p)}},p={};function u(e){var r=p[e];if(void 0!==r)return r.exports;var t=p[e]={exports:{}};return o[e](t,t.exports,u),t.exports}u.r=o=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"o",{value:!0})},up.feedback.config.currentClasses.push("active"),up.feedback.config.navSelectors.push(".nav",".navbar"),up.form.config.groupSelectors.unshift(".form-group"),up.viewport.config.fixedTopSelectors.push(".navbar.fixed-top"),up.viewport.config.fixedBottomSelectors.push(".navbar.fixed-bottom"),up.viewport.config.anchoredRightSelectors.push(".navbar.fixed-top",".navbar.fixed-bottom"),up.fragment.config.badTargetClasses.push("row",/^col(-xs|-sm|-md|-lg|-xl)?(-\d+)?$/,/^[mp][tblrxy]?-\d+$/),up.layer.config.foreignOverlaySelectors.push(".modal:not(up-modal)",".popover:not(up-popup)",".dropdown-menu:not(up-popup)"),u(79)})();
@@ -54,9 +54,9 @@ var __webpack_exports__ = {};
54
54
  (() => {
55
55
  up.feedback.config.currentClasses.push('active');
56
56
  up.feedback.config.navSelectors.push('.nav', '.navbar');
57
- up.viewport.config.fixedTop.push('.navbar.fixed-top');
58
- up.viewport.config.fixedBottom.push('.navbar.fixed-bottom');
59
- up.viewport.config.anchoredRight.push('.navbar.fixed-top', '.navbar.fixed-bottom');
57
+ up.viewport.config.fixedTopSelectors.push('.navbar.fixed-top');
58
+ up.viewport.config.fixedBottomSelectors.push('.navbar.fixed-bottom');
59
+ up.viewport.config.anchoredRightSelectors.push('.navbar.fixed-top', '.navbar.fixed-bottom');
60
60
  up.fragment.config.badTargetClasses.push('row', /^col(-xs|-sm|-md|-lg|-xl|-xxl)?(-\d+)?$/, /^[mp][tbsexy]?-\d+$/);
61
61
  up.layer.config.foreignOverlaySelectors.push('.modal:not(up-modal)', '.popover:not(up-popup)', '.dropdown-menu:not(up-popup)');
62
62
  __webpack_require__(1);
@@ -1 +1 @@
1
- (()=>{var e={313:(e,o,r)=>{"use strict";r.r(o)}},o={};function r(p){var t=o[p];if(void 0!==t)return t.exports;var n=o[p]={exports:{}};return e[p](n,n.exports,r),n.exports}r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},up.feedback.config.currentClasses.push("active"),up.feedback.config.navSelectors.push(".nav",".navbar"),up.viewport.config.fixedTop.push(".navbar.fixed-top"),up.viewport.config.fixedBottom.push(".navbar.fixed-bottom"),up.viewport.config.anchoredRight.push(".navbar.fixed-top",".navbar.fixed-bottom"),up.fragment.config.badTargetClasses.push("row",/^col(-xs|-sm|-md|-lg|-xl|-xxl)?(-\d+)?$/,/^[mp][tbsexy]?-\d+$/),up.layer.config.foreignOverlaySelectors.push(".modal:not(up-modal)",".popover:not(up-popup)",".dropdown-menu:not(up-popup)"),r(313)})();
1
+ (()=>{var o={313:(o,p,e)=>{"use strict";e.r(p)}},p={};function e(u){var t=p[u];if(void 0!==t)return t.exports;var a=p[u]={exports:{}};return o[u](a,a.exports,e),a.exports}e.r=o=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"o",{value:!0})},up.feedback.config.currentClasses.push("active"),up.feedback.config.navSelectors.push(".nav",".navbar"),up.viewport.config.fixedTopSelectors.push(".navbar.fixed-top"),up.viewport.config.fixedBottomSelectors.push(".navbar.fixed-bottom"),up.viewport.config.anchoredRightSelectors.push(".navbar.fixed-top",".navbar.fixed-bottom"),up.fragment.config.badTargetClasses.push("row",/^col(-xs|-sm|-md|-lg|-xl|-xxl)?(-\d+)?$/,/^[mp][tbsexy]?-\d+$/),up.layer.config.foreignOverlaySelectors.push(".modal:not(up-modal)",".popover:not(up-popup)",".dropdown-menu:not(up-popup)"),e(313)})();
@@ -24,17 +24,18 @@ up.migrate = (function () {
24
24
  }
25
25
  function removedProperty(object, key, warning) {
26
26
  const doWarn = u.memoize(() => warning ? warn(warning) : warn('Property { %s } has been removed without replacement (found in %o)', key, object));
27
- let value = object[key];
27
+ let valueRef = [object[key]];
28
28
  Object.defineProperty(object, key, {
29
29
  get() {
30
30
  doWarn();
31
- return value;
31
+ return valueRef[0];
32
32
  },
33
33
  set(newValue) {
34
34
  doWarn();
35
- value = newValue;
35
+ valueRef[0] = newValue;
36
36
  }
37
37
  });
38
+ return valueRef;
38
39
  }
39
40
  function forbiddenPropertyValue(object, key, forbiddenValue, errorMessage) {
40
41
  let value = object[key];
@@ -237,6 +238,18 @@ up.util.values = function (...args) {
237
238
  /* 3 */
238
239
  /***/ (() => {
239
240
 
241
+ class DeprecatedCannotCompile extends up.Error {
242
+ }
243
+ Object.defineProperty(up, 'CannotCompile', { get: function () {
244
+ up.migrate.warn('The error up.CannotCompile is no longer thrown. Compiler errors now emit an "error" event on window, but no longer crash the render pass.');
245
+ return DeprecatedCannotCompile;
246
+ } });
247
+
248
+
249
+ /***/ }),
250
+ /* 4 */
251
+ /***/ (() => {
252
+
240
253
  up.browser.loadPage = function (...args) {
241
254
  up.migrate.deprecated('up.browser.loadPage()', 'up.network.loadPage()');
242
255
  return up.network.loadPage(...args);
@@ -248,7 +261,7 @@ up.browser.isSupported = function (...args) {
248
261
 
249
262
 
250
263
  /***/ }),
251
- /* 4 */
264
+ /* 5 */
252
265
  /***/ (() => {
253
266
 
254
267
  up.element.first = function (...args) {
@@ -299,17 +312,17 @@ up.element.toSelector = function (...args) {
299
312
  return up.fragment.toTarget(...args);
300
313
  };
301
314
  up.element.isAttached = function (element) {
302
- up.migrate.deprecated('up.element.isAttached()', 'element.isConnected');
303
- return element.isConnected;
315
+ up.migrate.deprecated('up.element.isAttached()', 'document.contains(element)');
316
+ return document.contains(element);
304
317
  };
305
318
  up.element.isDetached = function (element) {
306
- up.migrate.deprecated('up.element.isDetached()', '!element.isConnected');
307
- return !element.isConnected;
319
+ up.migrate.deprecated('up.element.isDetached()', '!document.contains(element)');
320
+ return !up.element.isAttached(element);
308
321
  };
309
322
 
310
323
 
311
324
  /***/ }),
312
- /* 5 */
325
+ /* 6 */
313
326
  /***/ (() => {
314
327
 
315
328
  up.migrate.renamedPackage('bus', 'event');
@@ -339,11 +352,12 @@ up.$off = function (...definitionArgs) {
339
352
 
340
353
 
341
354
  /***/ }),
342
- /* 6 */
355
+ /* 7 */
343
356
  /***/ (() => {
344
357
 
345
358
  const u = up.util;
346
359
  const e = up.element;
360
+ up.migrate.renamedPackage('syntax', 'script');
347
361
  up.migrate.postCompile = function (elements, compiler) {
348
362
  let keepValue;
349
363
  if (keepValue = compiler.keep) {
@@ -385,10 +399,16 @@ up.$macro = function (...definitionArgs) {
385
399
  return $fn($element, ...fnArgs);
386
400
  });
387
401
  };
402
+ up.migrate.processCompilerPassMeta = function (meta, response) {
403
+ Object.defineProperty(meta, 'response', { get() {
404
+ up.migrate.warn('Accessing meta.response from a compiler has been deprecated without replacement. Avoid fragments that compile differently for the initial page load vs. subsequent fragment updates.');
405
+ return response;
406
+ } });
407
+ };
388
408
 
389
409
 
390
410
  /***/ }),
391
- /* 7 */
411
+ /* 8 */
392
412
  /***/ (() => {
393
413
 
394
414
  up.migrate.renamedProperty(up.form.config, 'fields', 'fieldSelectors');
@@ -421,7 +441,7 @@ up.observe = function (...args) {
421
441
 
422
442
 
423
443
  /***/ }),
424
- /* 8 */
444
+ /* 9 */
425
445
  /***/ (() => {
426
446
 
427
447
  const u = up.util;
@@ -429,6 +449,17 @@ up.migrate.renamedPackage('flow', 'fragment');
429
449
  up.migrate.renamedPackage('dom', 'fragment');
430
450
  up.migrate.renamedProperty(up.fragment.config, 'fallbacks', 'mainTargets');
431
451
  up.migrate.handleResponseDocOptions = docOptions => up.migrate.fixKey(docOptions, 'html', 'document');
452
+ let matchAroundOriginDeprecated = () => up.migrate.deprecated('up.fragment.config.matchAroundOrigin', 'up.fragment.config.match');
453
+ Object.defineProperty(up.fragment.config, 'matchAroundOrigin', {
454
+ get: function () {
455
+ matchAroundOriginDeprecated();
456
+ return this.match === 'closest';
457
+ },
458
+ set: function (value) {
459
+ matchAroundOriginDeprecated();
460
+ this.match = value ? 'region' : 'first';
461
+ }
462
+ });
432
463
  up.replace = function (target, url, options) {
433
464
  up.migrate.deprecated('up.replace(target, url)', 'up.navigate(target, { url })');
434
465
  return up.navigate(Object.assign(Object.assign({}, options), { target, url }));
@@ -567,14 +598,14 @@ up.compiler('[up-keep]', function (element) {
567
598
 
568
599
 
569
600
  /***/ }),
570
- /* 9 */
601
+ /* 10 */
571
602
  /***/ (() => {
572
603
 
573
604
  up.migrate.renamedEvent('up:app:booted', 'up:framework:booted');
574
605
 
575
606
 
576
607
  /***/ }),
577
- /* 10 */
608
+ /* 11 */
578
609
  /***/ (() => {
579
610
 
580
611
  up.migrate.renamedProperty(up.history.config, 'popTargets', 'restoreTargets');
@@ -587,10 +618,34 @@ up.migrate.renamedEvent('up:history:pushed', 'up:location:changed');
587
618
  up.migrate.renamedEvent('up:history:restore', 'up:location:changed');
588
619
  up.migrate.renamedEvent('up:history:restored', 'up:location:changed');
589
620
  up.migrate.renamedEvent('up:history:replaced', 'up:location:changed');
621
+ up.migrate.removedEvent('up:fragment:kept', 'up:fragment:keep');
622
+ let updateMetaTags = up.history.config.updateMetaTags;
623
+ let updateMetaTagsSet = false;
624
+ Object.defineProperty(up.history.config, 'updateMetaTags', {
625
+ get() {
626
+ return updateMetaTags;
627
+ },
628
+ set(value) {
629
+ updateMetaTags = value;
630
+ updateMetaTagsSet = true;
631
+ }
632
+ });
633
+ up.on('up:framework:boot', function () {
634
+ if (!updateMetaTagsSet) {
635
+ up.migrate.warn('Meta tags in the <head> are now updated automatically. Configure up.history.config.updateMetaTags to remove this warning.');
636
+ }
637
+ });
638
+ up.migrate.warnOfHungryMetaTags = function (metaTags) {
639
+ let fullHungrySelector = up.radio.config.hungrySelectors.join();
640
+ let hungryMetaTags = up.util.filter(metaTags, (meta) => meta.matches(fullHungrySelector));
641
+ if (hungryMetaTags.length) {
642
+ up.migrate.warn('Meta tags in the <head> are now updated automatically. Remove the [up-hungry] attribute from %o.', hungryMetaTags);
643
+ }
644
+ };
590
645
 
591
646
 
592
647
  /***/ }),
593
- /* 11 */
648
+ /* 12 */
594
649
  /***/ (() => {
595
650
 
596
651
  up.migrate.renamedPackage('navigation', 'feedback');
@@ -598,7 +653,7 @@ up.migrate.renamedProperty(up.feedback.config, 'navs', 'navSelectors');
598
653
 
599
654
 
600
655
  /***/ }),
601
- /* 12 */
656
+ /* 13 */
602
657
  /***/ (() => {
603
658
 
604
659
  up.migrate.renamedAttribute('up-flavor', 'up-mode', { scope: up.link.followSelector });
@@ -679,10 +734,17 @@ up.migrate.transformAttribute('up-restore-scroll', function (link, restoreScroll
679
734
  });
680
735
  up.migrate.targetMacro('up-dash', { 'up-preload': '', 'up-instant': '' }, () => up.migrate.deprecated('a[up-dash]', 'up.link.config.instantSelectors and up.link.config.preloadSelectors'));
681
736
  up.migrate.renamedAttribute('up-delay', 'up-preload-delay', { scope: up.link.preloadSelector });
737
+ up.link.config.preloadEnabled = true;
738
+ let preloadEnabledRef = up.migrate.removedProperty(up.link.config, 'preloadEnabled', 'The configuration up.link.config.preloadEnabled has been removed. To disable preloading, prevent up:link:preload instead.');
739
+ up.on('up:link:preload', function (event) {
740
+ if (!preloadEnabledRef[0]) {
741
+ event.preventDefault();
742
+ }
743
+ });
682
744
 
683
745
 
684
746
  /***/ }),
685
- /* 13 */
747
+ /* 14 */
686
748
  /***/ (() => {
687
749
 
688
750
  up.migrate.handleLayerOptions = function (options) {
@@ -722,14 +784,14 @@ up.migrate.registerLayerCloser = layer => layer.registerClickCloser('up-close',
722
784
  layer.dismiss(value, closeOptions);
723
785
  });
724
786
  up.migrate.handleLayerConfig = config => up.migrate.fixKey(config, 'historyVisible', 'history');
725
- up.util.getter(up.Layer.prototype, 'historyVisible', function () {
726
- up.migrate.deprecated('up.Layer#historyVisible', 'up.Layer#history');
727
- return this.history;
728
- });
787
+ Object.defineProperty(up.Layer.prototype, 'historyVisible', { get: function () {
788
+ up.migrate.deprecated('up.Layer#historyVisible', 'up.Layer#history');
789
+ return this.history;
790
+ } });
729
791
 
730
792
 
731
793
  /***/ }),
732
- /* 14 */
794
+ /* 15 */
733
795
  /***/ (() => {
734
796
 
735
797
  const FLAVORS_ERROR = new Error('up.modal.flavors has been removed without direct replacement. You may give new layers a { class } or modify layer elements on up:layer:open.');
@@ -788,7 +850,7 @@ up.migrate.targetMacro('up-drawer', { 'up-layer': 'new drawer' }, () => up.migra
788
850
 
789
851
 
790
852
  /***/ }),
791
- /* 15 */
853
+ /* 16 */
792
854
  /***/ (() => {
793
855
 
794
856
  up.popup = {
@@ -836,7 +898,7 @@ up.migrate.targetMacro('up-popup', { 'up-layer': 'new popup' }, () => up.migrate
836
898
 
837
899
 
838
900
  /***/ }),
839
- /* 16 */
901
+ /* 17 */
840
902
  /***/ (() => {
841
903
 
842
904
  up.macro('[up-tooltip]', function (opener) {
@@ -846,7 +908,7 @@ up.macro('[up-tooltip]', function (opener) {
846
908
 
847
909
 
848
910
  /***/ }),
849
- /* 17 */
911
+ /* 18 */
850
912
  /***/ (() => {
851
913
 
852
914
  up.migrate.clearCacheFromXHR = function (xhr) {
@@ -876,7 +938,7 @@ up.migrate.titleFromXHR = function (xhr) {
876
938
 
877
939
 
878
940
  /***/ }),
879
- /* 18 */
941
+ /* 19 */
880
942
  /***/ (() => {
881
943
 
882
944
  const u = up.util;
@@ -977,21 +1039,48 @@ function disableProgressBarIfCustomIndicator() {
977
1039
  }
978
1040
  disableProgressBarIfCustomIndicator();
979
1041
  up.on('up:framework:reset', disableProgressBarIfCustomIndicator);
1042
+ up.network.shouldReduceRequests = function () {
1043
+ up.migrate('up.network.shouldReduceRequests() has been removed without replacement');
1044
+ return false;
1045
+ };
1046
+ up.migrate.removedProperty(up.network.config, 'badRTT');
1047
+ up.migrate.removedProperty(up.network.config, 'badDownlink');
980
1048
 
981
1049
 
982
1050
  /***/ }),
983
- /* 19 */
1051
+ /* 20 */
984
1052
  /***/ (() => {
985
1053
 
1054
+ const e = up.element;
986
1055
  up.migrate.renamedProperty(up.radio.config, 'hungry', 'hungrySelectors');
1056
+ up.radio.config.pollEnabled = true;
1057
+ let pollEnabledRef = up.migrate.removedProperty(up.radio.config, 'pollEnabled', 'The configuration up.radio.config.pollEnabled has been removed. To disable polling, prevent up:fragment:poll instead.');
1058
+ up.on('up:fragment:poll', function (event) {
1059
+ if (!pollEnabledRef[0]) {
1060
+ event.preventDefault();
1061
+ }
1062
+ });
1063
+ up.compiler('[up-hungry][up-if-history]', function (element) {
1064
+ let ifHistory = e.booleanAttr(element, 'up-if-history');
1065
+ if (!ifHistory)
1066
+ return;
1067
+ element.addEventListener('up:fragment:hungry', function (event) {
1068
+ if (!event.renderOptions.history) {
1069
+ event.preventDefault();
1070
+ }
1071
+ });
1072
+ });
987
1073
 
988
1074
 
989
1075
  /***/ }),
990
- /* 20 */
1076
+ /* 21 */
991
1077
  /***/ (() => {
992
1078
 
993
1079
  up.migrate.renamedPackage('layout', 'viewport');
994
1080
  up.migrate.renamedProperty(up.viewport.config, 'viewports', 'viewportSelectors');
1081
+ up.migrate.renamedProperty(up.viewport.config, 'fixedTop', 'fixedTopSelectors');
1082
+ up.migrate.renamedProperty(up.viewport.config, 'fixedBottom', 'fixedBottomSelectors');
1083
+ up.migrate.renamedProperty(up.viewport.config, 'anchoredRight', 'anchoredRightSelectors');
995
1084
  up.migrate.renamedProperty(up.viewport.config, 'snap', 'revealSnap');
996
1085
  up.migrate.removedProperty(up.viewport.config, 'scrollSpeed');
997
1086
  up.viewport.closest = function (...args) {
@@ -1059,6 +1148,7 @@ __webpack_require__(17);
1059
1148
  __webpack_require__(18);
1060
1149
  __webpack_require__(19);
1061
1150
  __webpack_require__(20);
1151
+ __webpack_require__(21);
1062
1152
  up.framework.stopExtension();
1063
1153
 
1064
1154
  })();
@@ -1 +1 @@
1
- (()=>{var e={294:()=>{up.browser.loadPage=function(...e){return up.migrate.deprecated("up.browser.loadPage()","up.network.loadPage()"),up.network.loadPage(...e)},up.browser.isSupported=function(...e){return up.migrate.deprecated("up.browser.isSupported()","up.framework.isSupported()"),up.framework.isSupported(...e)}},700:()=>{up.element.first=function(...e){return up.migrate.deprecated("up.element.first()","up.element.get()"),up.element.get(...e)},up.element.createFromHtml=function(...e){return up.migrate.deprecated("up.element.createFromHtml()","up.element.createFromHTML()"),up.element.createFromHTML(...e)},up.element.remove=function(e){return up.migrate.deprecated("up.element.remove()","Element#remove()"),e.remove()},up.element.matches=function(e,t){return up.migrate.deprecated("up.element.matches()","Element#matches()"),e.matches(t)},up.element.closest=function(e,t){return up.migrate.deprecated("up.element.closest()","Element#closest()"),e.closest(t)},up.element.replace=function(e,t){return up.migrate.deprecated("up.element.replace()","Element#replaceWith()"),e.replaceWith(t)},up.element.all=function(...e){up.migrate.deprecated("up.element.all()","Document#querySelectorAll() or Element#querySelectorAll()");const t=e.pop();return(e[0]||document).querySelectorAll(t)},up.element.toggleClass=function(e,t,r){up.migrate.deprecated("up.element.toggleClass()","element.classList.toggle()");const a=e.classList;return null==r&&(r=!a.contains(t)),r?a.add(t):a.remove(t)},up.element.toSelector=function(...e){return up.migrate.deprecated("up.element.toSelector()","up.fragment.toTarget()"),up.fragment.toTarget(...e)},up.element.isAttached=function(e){return up.migrate.deprecated("up.element.isAttached()","element.isConnected"),e.isConnected},up.element.isDetached=function(e){return up.migrate.deprecated("up.element.isDetached()","!element.isConnected"),!e.isConnected}},394:()=>{up.migrate.renamedPackage("bus","event"),up.event.nobodyPrevents=function(...e){return up.migrate.deprecated("up.event.nobodyPrevents(type)","!up.emit(type).defaultPrevented"),!up.emit(...e).defaultPrevented},up.$on=function(...e){up.migrate.warn("up.$on() has been deprecated. Instead use up.on() with a callback that wraps the given native element in a jQuery collection.");let t=e.pop();return t.upNativeCallback=function(e,r,a){let p=jQuery(r);t.call(p,e,p,a)},up.on(...e,t.upNativeCallback)},up.$off=function(...e){up.migrate.deprecated("up.$off()","up.off()");let t=e.pop().upNativeCallback;return t||up.fail("The callback passed to up.$off() was never registered with up.$on()"),up.off(...e,t)}},729:()=>{up.migrate.renamedPackage("navigation","feedback"),up.migrate.renamedProperty(up.feedback.config,"navs","navSelectors")},305:()=>{up.migrate.renamedProperty(up.form.config,"fields","fieldSelectors"),up.migrate.renamedProperty(up.form.config,"submitButtons","submitButtonSelectors"),up.migrate.renamedProperty(up.form.config,"validateTargets","groupSelectors"),up.migrate.renamedProperty(up.form.config,"observeDelay","watchInputDelay"),up.migrate.migratedFormGroupSelectors=function(){return up.form.config.groupSelectors.map((e=>{let t=e.replace(/:has\((:origin|&)\)$/,"");return e!==t&&up.migrate.warn('Selectors in up.form.config.groupSelectors must not contain ":has(:origin)". The suffix is added automatically where required. Found in "%s".',e),t}))},up.migrate.renamedAttribute("up-observe","up-watch"),up.migrate.renamedAttribute("up-fieldset","up-form-group"),up.migrate.renamedAttribute("up-delay","up-watch-delay",{scope:"[up-autosubmit]"}),up.migrate.renamedAttribute("up-delay","up-watch-delay",{scope:"[up-watch]"}),up.observe=function(...e){if(up.migrate.deprecated("up.observe()","up.watch()"),up.util.isList(e[0])&&e[0].length>1){let t=e.shift();up.migrate.warn("Calling up.observe() with a list of multiple elements is no longer supported by up.watch()");let r=up.util.map(t,(t=>up.watch(t,...e)));return up.util.sequence(r)}return up.watch(...e)}},354:()=>{const e=up.util;up.migrate.renamedPackage("flow","fragment"),up.migrate.renamedPackage("dom","fragment"),up.migrate.renamedProperty(up.fragment.config,"fallbacks","mainTargets"),up.migrate.handleResponseDocOptions=e=>up.migrate.fixKey(e,"html","document"),up.replace=function(e,t,r){return up.migrate.deprecated("up.replace(target, url)","up.navigate(target, { url })"),up.navigate(Object.assign(Object.assign({},r),{target:e,url:t}))},up.extract=function(e,t,r){return up.migrate.deprecated("up.extract(target, document)","up.navigate(target, { document })"),up.navigate(Object.assign(Object.assign({},r),{target:e,document:t}))},up.fragment.first=function(...e){return up.migrate.deprecated("up.fragment.first()","up.fragment.get()"),up.fragment.get(...e)},up.first=up.fragment.first,up.migrate.preprocessRenderOptions=function(t){e.isString(t.history)&&"auto"!==t.history&&(up.migrate.warn("Passing a URL as { history } option is deprecated. Pass it as { location } instead."),t.location=t.history,t.history="auto");for(let r of["target","origin"])e.isJQuery(t[r])&&(up.migrate.warn("Passing a jQuery collection as { %s } is deprecated. Pass it as a native element instead.",r),t[r]=up.element.get(t[r]));"auto"===t.fail&&(up.migrate.warn("The option { fail: 'auto' } is deprecated. Omit the option instead."),delete t.fail);let r=e.pluckKey(t,"solo");e.isString(r)?(up.migrate.warn("The up.render() option { solo } has been replaced with { abort } and { abort } no longer accepts a URL pattern. Check if you can use { abort: 'target'} or use up.network.abort(pattern) instead."),t.abort=e=>up.network.abort(r,e)):e.isFunction(r)?(up.migrate.warn("The up.render() option { solo } has been replaced with { abort } and { abort } no longer accepts a Function(up.Request): boolean. Check if you can use { abort: 'target'} or use up.network.abort(fn) instead."),t.abort=e=>{up.network.abort(r,e)}):!0===r?(up.migrate.deprecated("Option { solo: true }","{ abort: 'all' }"),t.abort="all"):!1===r&&(up.migrate.deprecated("Option { solo: false }","{ abort: false }"),up.migrate.warn("Unpoly 3+ only aborts requests targeting the same fragment. Setting { solo: false } may no longer be necessary."),t.abort=!1),up.migrate.fixKey(t,"keep","useKeep"),up.migrate.fixKey(t,"hungry","useHungry"),up.migrate.fixKey(t,"failOnFinished","onFailFinished"),e.isString(t.reveal)?(up.migrate.deprecated(`Option { reveal: '${t.reveal}' }`,`{ scroll: '${t.reveal}' }`),t.scroll=t.reveal):!0===t.reveal?(up.migrate.deprecated("Option { reveal: true }","{ scroll: 'target' }"),t.scroll="target"):!1===t.reveal&&(up.migrate.deprecated("Option { reveal: false }","{ scroll: false }"),t.scroll=!1),!0===t.resetScroll&&(up.migrate.deprecated("Option { resetScroll: true }","{ scroll: 'reset' }"),t.scroll="reset"),!1===t.resetScroll&&(up.migrate.deprecated("Option { resetScroll: false }","{ scroll: false }"),t.scroll=!1),!0===t.restoreScroll&&(up.migrate.deprecated("Option { restoreScroll: true }","{ scroll: 'restore' }"),t.scroll="restore"),!1===t.restoreScroll&&(up.migrate.deprecated("Option { restoreScroll: false }","{ scroll: false }"),t.scroll=!1)},up.migrate.postprocessReloadOptions=function(e){var t;let r,a=null===(t=e.headers)||void 0===t?void 0:t["If-Modified-Since"];r=a?Math.floor(.001*new Date(a)).toString():"0",e.headers[up.protocol.headerize("reloadFromTime")]=r},up.migrate.resolveOrigin=function(e,{origin:t}={}){return e.replace(/"[^"]*"|'[^']*'|&|:origin\b/g,(function(r){return":origin"!==r&&"&"!==r?r:("&"===r&&up.migrate.deprecated("Origin shorthand '&'",":origin"),t?up.fragment.toTarget(t):void up.fail('Missing { origin } element to resolve "%s" reference (found in %s)',r,e))}))},up.migrate.removedEvent("up:fragment:kept","up:fragment:keep");let t=up.fragment.config.runScripts,r=!1;Object.defineProperty(up.fragment.config,"runScripts",{get:()=>t,set(e){t=e,r=!0}}),up.on("up:framework:boot",(function(){r||up.migrate.warn("Scripts within fragments are now executed. Configure up.fragment.config.runScripts to remove this warning.")})),up.compiler("[up-keep]",(function(t){let r=up.element.booleanOrStringAttr(t,"up-keep");e.isString(r)&&(up.migrate.warn('The [up-keep] attribute no longer supports a selector value. Elements will be matched by their derived target. You may prevent keeping with [up-on-keep="if(condition) event.preventDefault()"]. '),up.element.setMissingAttr(t,"up-on-keep",`if (!newFragment.matches(${JSON.stringify(r)})) event.preventDefault()`),t.setAttribute("up-keep",""))}))},234:()=>{up.migrate.renamedEvent("up:app:booted","up:framework:booted")},869:()=>{up.migrate.renamedProperty(up.history.config,"popTargets","restoreTargets"),up.history.url=function(){return up.migrate.deprecated("up.history.url()","up.history.location"),up.history.location},up.migrate.renamedEvent("up:history:push","up:location:changed"),up.migrate.renamedEvent("up:history:pushed","up:location:changed"),up.migrate.renamedEvent("up:history:restore","up:location:changed"),up.migrate.renamedEvent("up:history:restored","up:location:changed"),up.migrate.renamedEvent("up:history:replaced","up:location:changed")},905:()=>{up.migrate.handleLayerOptions=function(e){up.migrate.fixKey(e,"flavor","mode"),up.migrate.fixKey(e,"closable","dismissable"),up.migrate.fixKey(e,"closeLabel","dismissLabel");for(let t of["width","maxWidth","height"])e[t]&&up.migrate.warn(`Layer option { ${t} } has been removed. Use { size } or { class } instead.`);e.sticky&&up.migrate.warn("Layer option { sticky } has been removed. Give links an [up-peel=false] attribute to prevent layer dismissal on click."),e.template&&up.migrate.warn("Layer option { template } has been removed. Use { class } or modify the layer HTML on up:layer:open."),"page"===e.layer&&(up.migrate.warn("Option { layer: 'page' } has been renamed to { layer: 'root' }."),e.layer="root"),"modal"!==e.layer&&"popup"!==e.layer||(up.migrate.warn(`Option { layer: '${e.layer}' } has been removed. Did you mean { layer: 'overlay' }?`),e.layer="overlay")},up.migrate.handleTetherOptions=function(e){const[t,r]=e.position.split("-");r&&(up.migrate.warn("The position value %o is deprecated. Use %o instead.",e.position,{position:t,align:r}),e.position=t,e.align=r)},up.migrate.registerLayerCloser=e=>e.registerClickCloser("up-close",((t,r)=>{up.migrate.deprecated("[up-close]","[up-dismiss]"),e.dismiss(t,r)})),up.migrate.handleLayerConfig=e=>up.migrate.fixKey(e,"historyVisible","history"),up.util.getter(up.Layer.prototype,"historyVisible",(function(){return up.migrate.deprecated("up.Layer#historyVisible","up.Layer#history"),this.history}))},969:()=>{up.migrate.renamedAttribute("up-flavor","up-mode",{scope:up.link.followSelector}),up.migrate.renamedAttribute("up-closable","up-dismissable",{scope:up.link.followSelector}),up.migrate.removedAttribute("up-width",{scope:up.link.followSelector,replacement:"[up-size] or [up-class]"}),up.migrate.removedAttribute("up-height",{scope:up.link.followSelector,replacement:"[up-size] or [up-class]"}),up.migrate.renamedAttribute("up-history-visible","up-history",{scope:up.link.followSelector}),up.migrate.renamedAttribute("up-clear-cache","up-expire-cache",{scope:up.link.followSelector}),up.migrate.transformAttribute("up-solo",(function(e,t){switch(t){case"":up.migrate.warn('Attribute [up-solo] has been replaced with [up-abort="all"]'),e.setAttribute("up-abort","all");break;case"true":up.migrate.warn('Attribute [up-solo="true"] has been replaced with [up-abort="all"]'),e.setAttribute("up-abort","all");break;case"false":up.migrate.warn('Attribute [up-solo="false"] has been replaced with [up-abort="false"]'),up.migrate.warn('Unpoly 3+ only aborts requests targeting the same fragment. Setting [up-solo="false"] may no longer be necessary.'),e.setAttribute("up-abort","false");break;default:up.migrate.warn('Attribute [up-solo] has been renamed to [up-abort] and [up-abort] no longer accepts a URL pattern. Check if you can use [up-abort="target"] instead.'),e.setAttribute("up-abort","target")}})),up.migrate.transformAttribute("up-reveal",(function(e,t){switch(t){case"":up.migrate.warn('Attribute [up-reveal] has been replaced with [up-scroll="target"]'),e.setAttribute("up-scroll","target");break;case"true":up.migrate.warn('Attribute [up-reveal="true"] has been replaced with [up-scroll="target"]'),e.setAttribute("up-scroll","target");break;case"false":up.migrate.warn('Attribute [up-reveal="false"] has been replaced with [up-scroll="false"]'),e.setAttribute("up-scroll","false");break;default:up.migrate.warn('Attribute [up-reveal="%s"] has been replaced with [up-scroll="%s"]',t)}})),up.migrate.transformAttribute("up-reset-scroll",(function(e,t){switch(t){case"":up.migrate.warn('Attribute [up-reset-scroll] has been replaced with [up-scroll="reset"]'),e.setAttribute("up-scroll","reset");break;case"true":up.migrate.warn('Attribute [up-reset-scroll="true"] has been replaced with [up-scroll="reset"]'),e.setAttribute("up-scroll","reset");break;case"false":up.migrate.warn('Attribute [up-reset-scroll="false"] has been replaced with [up-scroll="false"]'),e.setAttribute("up-scroll","false")}})),up.migrate.transformAttribute("up-restore-scroll",(function(e,t){switch(t){case"":up.migrate.warn('Attribute [up-restore-scroll] has been replaced with [up-scroll="restore"]'),e.setAttribute("up-scroll","restore");break;case"true":up.migrate.warn('Attribute [up-restore-scroll="true"] has been replaced with [up-scroll="restore"]'),e.setAttribute("up-scroll","restore");break;case"false":up.migrate.warn('Attribute [up-restore-scroll="false"] has been replaced with [up-scroll="false"]'),e.setAttribute("up-scroll","false")}})),up.migrate.targetMacro("up-dash",{"up-preload":"","up-instant":""},(()=>up.migrate.deprecated("a[up-dash]","up.link.config.instantSelectors and up.link.config.preloadSelectors"))),up.migrate.renamedAttribute("up-delay","up-preload-delay",{scope:up.link.preloadSelector})},992:()=>{const e=up.util;up.migrate=function(){const t=new up.Config((()=>({logLevel:"warn"})));function r(t,...r){let a=e.extractCallback(r),{scope:p}=e.extractOptions(r),u=p||`[${t}]`;up.macro(u,{priority:-1e3},(function(e){if(e.hasAttribute(t)){let r=e.getAttribute(t);a(e,r)}}))}const a={},p={};function u(e){let t=a[e];if(t)return n(`Event ${e} has been renamed to ${t}`),t;if(e in p){let t=`Event ${e} has been removed`,r=p[e];return r&&(t+=`. Use ${r} instead.`),n(t),e}return e}const o={};function n(r,...a){const p=e.sprintf(r,...a);o[p]||(o[p]=!0,up.log[t.logLevel]("unpoly-migrate",r,...a))}return up.on("up:framework:reset",(function(){t.reset()})),{deprecated:function(e,t){n(`${e} has been deprecated. Use ${t} instead.`)},renamedPackage:function(e,t){Object.defineProperty(up,e,{get:()=>(n(`up.${e} has been renamed to up.${t}`),up[t])})},renamedProperty:function(t,r,a,p){const u=e.memoize((()=>p?n(p):n("Property { %s } has been renamed to { %s } (found in %o)",r,a,t)));Object.defineProperty(t,r,{get(){return u(),this[a]},set(e){u(),this[a]=e}})},removedProperty:function(t,r,a){const p=e.memoize((()=>a?n(a):n("Property { %s } has been removed without replacement (found in %o)",r,t)));let u=t[r];Object.defineProperty(t,r,{get:()=>(p(),u),set(e){p(),u=e}})},forbiddenPropertyValue:function(e,t,r,a){let p=e[t];Object.defineProperty(e,t,{get:()=>p,set(e){if(e===r)throw new Error(a);p=e}})},transformAttribute:r,renamedAttribute:function(t,a,{scope:p,mapValue:u}={}){r(t,{scope:p},(function(r,p){n("Attribute [%s] has been renamed to [%s] (found in %o)",t,a,r),u&&(p=e.evalOption(u,p)),r.setAttribute(a,p)}))},removedAttribute:function(e,{scope:t,replacement:a}={}){r(e,{scope:t},(function(t,r){a?n("Attribute [%s] has been removed (found in %o). Use %s instead.",e,t,a):n("Attribute [%s] has been removed without replacement (found in %o)",e,t)}))},formerlyAsync:function(e){const t=Promise.resolve(),r=t.then;return t.then=function(){return n(`${e} no longer returns a promise`),r.apply(this,arguments)},t},renamedEvent:function(e,t){a[e]=t},removedEvent:function(e,t=null){p[e]=t},fixEventTypes:function(t){return e.uniq(e.map(t,u))},fixKey:function(t,r,a){e.isDefined(t[r])&&(n("Property { %s } has been renamed to { %s } (found in %o)",r,a,t),e.renameKey(t,r,a))},warn:n,loaded:!0,config:t}}()},413:()=>{const e=new Error("up.modal.flavors has been removed without direct replacement. You may give new layers a { class } or modify layer elements on up:layer:open.");up.modal={visit:(e,t={})=>(up.migrate.deprecated("up.modal.visit(url)",'up.layer.open({ url, mode: "modal" })'),up.layer.open(Object.assign(Object.assign({},t),{url:e,mode:"modal"}))),follow:(e,t={})=>(up.migrate.deprecated("up.modal.follow(link)",'up.follow(link, { layer: "modal" })'),up.follow(e,Object.assign(Object.assign({},t),{layer:"modal"}))),extract:(e,t,r={})=>(up.migrate.deprecated("up.modal.extract(target, document)",'up.layer.open({ document, mode: "modal" })'),up.layer.open(Object.assign(Object.assign({},r),{target:e,html:t,layer:"modal"}))),close:(e={})=>(up.migrate.deprecated("up.modal.close()","up.layer.dismiss()"),up.layer.dismiss(null,e),up.migrate.formerlyAsync("up.layer.dismiss()")),url:()=>(up.migrate.deprecated("up.modal.url()","up.layer.location"),up.layer.location),coveredUrl(){var e;return up.migrate.deprecated("up.modal.coveredUrl()","up.layer.parent.location"),null===(e=up.layer.parent)||void 0===e?void 0:e.location},get config(){return up.migrate.deprecated("up.modal.config","up.layer.config.modal"),up.layer.config.modal},contains:e=>(up.migrate.deprecated("up.modal.contains()","up.layer.contains()"),up.layer.contains(e)),isOpen:()=>(up.migrate.deprecated("up.modal.isOpen()","up.layer.isOverlay()"),up.layer.isOverlay()),get flavors(){throw e},flavor(){throw e}},up.migrate.renamedEvent("up:modal:open","up:layer:open"),up.migrate.renamedEvent("up:modal:opened","up:layer:opened"),up.migrate.renamedEvent("up:modal:close","up:layer:dismiss"),up.migrate.renamedEvent("up:modal:closed","up:layer:dismissed"),up.migrate.targetMacro("up-modal",{"up-layer":"new modal"},(()=>up.migrate.deprecated("a[up-modal]",'a[up-layer="new modal"]'))),up.migrate.targetMacro("up-drawer",{"up-layer":"new drawer"},(()=>up.migrate.deprecated("a[up-drawer]",'a[up-layer="new drawer"]')))},885:()=>{const e=up.util;up.migrate.renamedPackage("proxy","network"),up.migrate.renamedEvent("up:proxy:load","up:request:load"),up.migrate.renamedEvent("up:proxy:received","up:request:loaded"),up.migrate.renamedEvent("up:proxy:loaded","up:request:loaded"),up.migrate.renamedEvent("up:proxy:fatal","up:request:offline"),up.migrate.renamedEvent("up:request:fatal","up:request:offline"),up.migrate.renamedEvent("up:proxy:aborted","up:request:aborted"),up.migrate.renamedEvent("up:proxy:slow","up:network:late"),up.migrate.renamedEvent("up:proxy:recover","up:network:recover"),up.migrate.renamedEvent("up:request:late","up:network:late"),up.migrate.renamedEvent("up:request:recover","up:network:recover");const t=()=>up.migrate.deprecated("up.proxy.config.preloadDelay","up.link.config.preloadDelay");Object.defineProperty(up.network.config,"preloadDelay",{get:()=>(t(),up.link.config.preloadDelay),set(e){t(),up.link.config.preloadDelay=e}}),up.migrate.renamedProperty(up.network.config,"maxRequests","concurrency"),up.migrate.renamedProperty(up.network.config,"slowDelay","badResponseTime"),up.migrate.renamedProperty(up.network.config,"cacheExpiry","cacheExpireAge",'The configuration up.network.config.cacheExpiry has been renamed to up.network.config.cacheExpireAge. Note that Unpoly 3+ automatically reloads cached content after rendering to ensure users always see fresh data ("cache revalidation"). Setting a custom expiry may no longer be necessary.'),up.migrate.renamedProperty(up.network.config,"clearCache","expireCache"),up.migrate.forbiddenPropertyValue(up.network.config,"cacheSize",0,"Disabling the cache with up.network.config.cacheSize = 0 is no longer supported. To disable automatic caching during navigation, set up.fragment.config.navigateOptions.cache = false instead."),up.network.config.requestMetaKeys=[],up.migrate.removedProperty(up.network.config,"requestMetaKeys","The configuration up.network.config.requestMetaKeys has been removed. Servers that optimize responses based on request headers should instead set a Vary response header."),up.migrate.handleRequestOptions=function(e){up.migrate.fixKey(e,"clearCache","expireCache"),e.solo&&up.migrate.warn("The option up.request({ solo }) has been removed. Use up.network.abort() or up.fragment.abort() instead.")},up.ajax=function(...e){return up.migrate.deprecated("up.ajax()","up.request()"),up.request(...e).then((e=>e.text))},up.network.clear=function(){up.migrate.deprecated("up.proxy.clear()","up.cache.expire()"),up.cache.expire()},up.Request.Cache.prototype.clear=function(...e){up.migrate.deprecated("up.cache.clear()","up.cache.expire()"),this.expire(...e)},up.network.preload=function(...e){return up.migrate.deprecated("up.proxy.preload(link)","up.link.preload(link)"),up.link.preload(...e)},up.migrate.preprocessAbortArgs=function(t){2===t.length&&e.isString(t[1])&&(up.migrate.warn("up.network.abort() no longer takes a reason as a second argument. Pass it as { reason } option instead."),t[1]={reason:t[1]})},up.network.isIdle=function(){return up.migrate.deprecated("up.network.isIdle()","!up.network.isBusy()"),!up.network.isBusy()},up.Request.prototype.navigate=function(){up.migrate.deprecated("up.Request#navigate()","up.Request#loadPage()"),this.loadPage()},up.migrate.renamedProperty(up.Request.prototype,"preload","background"),up.Response.prototype.isSuccess=function(){return up.migrate.deprecated("up.Response#isSuccess()","up.Response#ok"),this.ok},up.Response.prototype.getHeader=function(e){return up.migrate.deprecated("up.Response#getHeader()","up.Response#header()"),this.header(e)},up.Response.prototype.isError=function(){return up.migrate.deprecated("up.Response#isError()","!up.Response#ok"),!this.ok};const r=up.network.config.progressBar;function a(){up.network.config.progressBar=function(){return function(){const t=up.EventListener.allNonDefault(document);return e.find(t,(e=>"up:network:late"===e.eventType))}()?(up.migrate.warn("Disabled the default progress bar as may have built a custom loading indicator with your up:network:late listener. Please set up.network.config.progressBar to true or false."),!1):r}}a(),up.on("up:framework:reset",a)},69:()=>{up.popup={attach:(e,t={})=>(e=up.fragment.get(e),up.migrate.deprecated("up.popup.attach(origin)","up.layer.open({ origin, layer: 'popup' })"),up.layer.open(Object.assign(Object.assign({},t),{origin:e,layer:"popup"}))),close:(e={})=>(up.migrate.deprecated("up.popup.close()","up.layer.dismiss()"),up.layer.dismiss(null,e),up.migrate.formerlyAsync("up.layer.dismiss()")),url:()=>(up.migrate.deprecated("up.popup.url()","up.layer.location"),up.layer.location),coveredUrl(){var e;return up.migrate.deprecated("up.popup.coveredUrl()","up.layer.parent.location"),null===(e=up.layer.parent)||void 0===e?void 0:e.location},get config(){return up.migrate.deprecated("up.popup.config","up.layer.config.popup"),up.layer.config.popup},contains:e=>(up.migrate.deprecated("up.popup.contains()","up.layer.contains()"),up.layer.contains(e)),isOpen:()=>(up.migrate.deprecated("up.popup.isOpen()","up.layer.isOverlay()"),up.layer.isOverlay()),sync:()=>(up.migrate.deprecated("up.popup.sync()","up.layer.sync()"),up.layer.sync())},up.migrate.renamedEvent("up:popup:open","up:layer:open"),up.migrate.renamedEvent("up:popup:opened","up:layer:opened"),up.migrate.renamedEvent("up:popup:close","up:layer:dismiss"),up.migrate.renamedEvent("up:popup:closed","up:layer:dismissed"),up.migrate.targetMacro("up-popup",{"up-layer":"new popup"},(()=>up.migrate.deprecated("[up-popup]",'[up-layer="new popup"]')))},677:()=>{up.migrate.clearCacheFromXHR=function(e){let t=e.getResponseHeader("X-Up-Clear-Cache");if(t)return up.migrate.deprecated("X-Up-Clear-Cache","X-Up-Expire-Cache"),"false"!==t&&t},up.migrate.titleFromXHR=function(e){let t=e.getResponseHeader("X-Up-Title");if(t){if("false"===t)return!1;if('"'!==t[0])return up.migrate.warn("X-Up-Title must now be a JSON-encoded string"),t}}},228:()=>{up.migrate.renamedProperty(up.radio.config,"hungry","hungrySelectors")},629:()=>{const e=up.util,t=up.element;up.migrate.postCompile=function(t,r){let a;if(a=r.keep){up.migrate.warn("The { keep: true } option for up.compiler() has been removed. Have the compiler set [up-keep] attribute instead.");const r=e.isString(a)?a:"";for(let e of t)e.setAttribute("up-keep",r)}},up.migrate.targetMacro=function(r,a,p){up.macro(`[${r}]`,(function(u){let o;const n=e.copy(a);(o=u.getAttribute(r))?n["up-target"]=o:n["up-follow"]="",t.setMissingAttrs(u,n),u.removeAttribute(r),null==p||p()}))},up.$compiler=function(...e){up.migrate.warn("up.$compiler() has been deprecated. Instead use up.compiler() with a callback that wraps the given native element in a jQuery collection.");let t=e.pop();return up.compiler(...e,(function(e,...r){let a=jQuery(e);return t(a,...r)}))},up.$macro=function(...e){up.migrate.warn("up.$macro() has been deprecated. Instead use up.macro() with a callback that wraps the given native element in a jQuery collection.");let t=e.pop();return up.macro(...e,(function(e,...r){let a=jQuery(e);return t(a,...r)}))}},197:()=>{up.macro("[up-tooltip]",(function(e){up.migrate.warn("[up-tooltip] has been deprecated. A [title] was set instead."),up.element.setMissingAttr(e,"title",e.getAttribute("up-tooltip"))}))},480:()=>{up.util.only=function(e,...t){return up.migrate.deprecated("up.util.only(object, ...keys)","up.util.pick(object, keys)"),up.util.pick(e,t)},up.util.except=function(e,...t){return up.migrate.deprecated("up.util.except(object, ...keys)","up.util.omit(object, keys)"),up.util.omit(e,t)},up.util.parseUrl=function(...e){return up.migrate.deprecated("up.util.parseUrl()","up.util.parseURL()"),up.util.parseURL(...e)},up.util.any=function(...e){return up.migrate.deprecated("up.util.any()","up.util.some()"),up.util.some(...e)},up.util.all=function(...e){return up.migrate.deprecated("up.util.all()","up.util.every()"),up.util.every(...e)},up.util.detect=function(...e){return up.migrate.deprecated("up.util.detect()","up.util.find()"),up.util.find(...e)},up.util.select=function(...e){return up.migrate.deprecated("up.util.select()","up.util.filter()"),up.util.filter(...e)},up.util.setTimer=function(...e){return up.migrate.deprecated("up.util.setTimer()","up.util.timer()"),up.util.timer(...e)},up.util.escapeHtml=function(...e){return up.migrate.deprecated("up.util.escapeHtml()","up.util.escapeHTML()"),up.util.escapeHTML(...e)},up.util.selectorForElement=function(...e){return up.migrate.deprecated("up.util.selectorForElement()","up.fragment.toTarget()"),up.fragment.toTarget(...e)},up.util.nextFrame=function(...e){return up.migrate.deprecated("up.util.nextFrame()","up.util.task()"),up.util.task(...e)},up.util.times=function(e,t){up.migrate.deprecated("up.util.times()","a `for` loop");for(let r=0;r<e;r++)t()},up.util.assign=function(...e){return up.migrate.deprecated("up.util.assign()","Object.assign()"),Object.assign(...e)},up.util.values=function(...e){return up.migrate.deprecated("up.util.values()","Object.values()"),Object.values(...e)}},338:()=>{up.migrate.renamedPackage("layout","viewport"),up.migrate.renamedProperty(up.viewport.config,"viewports","viewportSelectors"),up.migrate.renamedProperty(up.viewport.config,"snap","revealSnap"),up.migrate.removedProperty(up.viewport.config,"scrollSpeed"),up.viewport.closest=function(...e){return up.migrate.deprecated("up.viewport.closest()","up.viewport.get()"),up.viewport.get(...e)},up.viewport.scroll=function(e,t,r={}){return up.migrate.deprecated("up.scroll()","Element#scrollTo()"),(e=up.fragment.get(e,r)).scrollTo(Object.assign(Object.assign({},r),{top:t})),up.migrate.formerlyAsync("up.scroll()")},up.scroll=up.viewport.scroll}},t={};function r(a){var p=t[a];if(void 0!==p)return p.exports;var u=t[a]={exports:{}};return e[a](u,u.exports,r),u.exports}up.framework.startExtension(),r(992),r(480),r(294),r(700),r(394),r(629),r(305),r(354),r(234),r(869),r(729),r(969),r(905),r(413),r(69),r(197),r(677),r(885),r(228),r(338),up.framework.stopExtension()})();
1
+ (()=>{var e={294:()=>{up.browser.loadPage=function(...e){return up.migrate.deprecated("up.browser.loadPage()","up.network.loadPage()"),up.network.loadPage(...e)},up.browser.isSupported=function(...e){return up.migrate.deprecated("up.browser.isSupported()","up.framework.isSupported()"),up.framework.isSupported(...e)}},700:()=>{up.element.first=function(...e){return up.migrate.deprecated("up.element.first()","up.element.get()"),up.element.get(...e)},up.element.createFromHtml=function(...e){return up.migrate.deprecated("up.element.createFromHtml()","up.element.createFromHTML()"),up.element.createFromHTML(...e)},up.element.remove=function(e){return up.migrate.deprecated("up.element.remove()","Element#remove()"),e.remove()},up.element.matches=function(e,u){return up.migrate.deprecated("up.element.matches()","Element#matches()"),e.matches(u)},up.element.closest=function(e,u){return up.migrate.deprecated("up.element.closest()","Element#closest()"),e.closest(u)},up.element.replace=function(e,u){return up.migrate.deprecated("up.element.replace()","Element#replaceWith()"),e.replaceWith(u)},up.element.all=function(...e){up.migrate.deprecated("up.element.all()","Document#querySelectorAll() or Element#querySelectorAll()");const u=e.pop();return(e[0]||document).querySelectorAll(u)},up.element.toggleClass=function(e,u,t){up.migrate.deprecated("up.element.toggleClass()","element.classList.toggle()");const p=e.classList;return null==t&&(t=!p.contains(u)),t?p.add(u):p.remove(u)},up.element.toSelector=function(...e){return up.migrate.deprecated("up.element.toSelector()","up.fragment.toTarget()"),up.fragment.toTarget(...e)},up.element.isAttached=function(e){return up.migrate.deprecated("up.element.isAttached()","document.contains(element)"),document.contains(e)},up.element.isDetached=function(e){return up.migrate.deprecated("up.element.isDetached()","!document.contains(element)"),!up.element.isAttached(e)}},937:()=>{class DeprecatedCannotCompile extends up.Error{}Object.defineProperty(up,"CannotCompile",{get:function(){return up.migrate.warn('The error up.CannotCompile is no longer thrown. Compiler errors now emit an "error" event on window, but no longer crash the render pass.'),DeprecatedCannotCompile}})},394:()=>{up.migrate.renamedPackage("bus","event"),up.event.nobodyPrevents=function(...e){return up.migrate.deprecated("up.event.nobodyPrevents(type)","!up.emit(type).defaultPrevented"),!up.emit(...e).defaultPrevented},up.$on=function(...e){up.migrate.warn("up.$on() has been deprecated. Instead use up.on() with a callback that wraps the given native element in a jQuery collection.");let u=e.pop();return u.upNativeCallback=function(e,t,p){let r=jQuery(t);u.call(r,e,r,p)},up.on(...e,u.upNativeCallback)},up.$off=function(...e){up.migrate.deprecated("up.$off()","up.off()");let u=e.pop().upNativeCallback;return u||up.fail("The callback passed to up.$off() was never registered with up.$on()"),up.off(...e,u)}},729:()=>{up.migrate.renamedPackage("navigation","feedback"),up.migrate.renamedProperty(up.feedback.config,"navs","navSelectors")},305:()=>{up.migrate.renamedProperty(up.form.config,"fields","fieldSelectors"),up.migrate.renamedProperty(up.form.config,"submitButtons","submitButtonSelectors"),up.migrate.renamedProperty(up.form.config,"validateTargets","groupSelectors"),up.migrate.renamedProperty(up.form.config,"observeDelay","watchInputDelay"),up.migrate.migratedFormGroupSelectors=function(){return up.form.config.groupSelectors.map((e=>{let u=e.replace(/:has\((:origin|&)\)$/,"");return e!==u&&up.migrate.warn('Selectors in up.form.config.groupSelectors must not contain ":has(:origin)". The suffix is added automatically where required. Found in "%s".',e),u}))},up.migrate.renamedAttribute("up-observe","up-watch"),up.migrate.renamedAttribute("up-fieldset","up-form-group"),up.migrate.renamedAttribute("up-delay","up-watch-delay",{scope:"[up-autosubmit]"}),up.migrate.renamedAttribute("up-delay","up-watch-delay",{scope:"[up-watch]"}),up.observe=function(...e){if(up.migrate.deprecated("up.observe()","up.watch()"),up.util.isList(e[0])&&e[0].length>1){let u=e.shift();up.migrate.warn("Calling up.observe() with a list of multiple elements is no longer supported by up.watch()");let t=up.util.map(u,(u=>up.watch(u,...e)));return up.util.sequence(t)}return up.watch(...e)}},354:()=>{const e=up.util;up.migrate.renamedPackage("flow","fragment"),up.migrate.renamedPackage("dom","fragment"),up.migrate.renamedProperty(up.fragment.config,"fallbacks","mainTargets"),up.migrate.handleResponseDocOptions=e=>up.migrate.fixKey(e,"html","document");let u=()=>up.migrate.deprecated("up.fragment.config.matchAroundOrigin","up.fragment.config.match");Object.defineProperty(up.fragment.config,"matchAroundOrigin",{get:function(){return u(),"closest"===this.match},set:function(e){u(),this.match=e?"region":"first"}}),up.replace=function(e,u,t){return up.migrate.deprecated("up.replace(target, url)","up.navigate(target, { url })"),up.navigate(Object.assign(Object.assign({},t),{target:e,url:u}))},up.extract=function(e,u,t){return up.migrate.deprecated("up.extract(target, document)","up.navigate(target, { document })"),up.navigate(Object.assign(Object.assign({},t),{target:e,document:u}))},up.fragment.first=function(...e){return up.migrate.deprecated("up.fragment.first()","up.fragment.get()"),up.fragment.get(...e)},up.first=up.fragment.first,up.migrate.preprocessRenderOptions=function(u){e.isString(u.history)&&"auto"!==u.history&&(up.migrate.warn("Passing a URL as { history } option is deprecated. Pass it as { location } instead."),u.location=u.history,u.history="auto");for(let t of["target","origin"])e.isJQuery(u[t])&&(up.migrate.warn("Passing a jQuery collection as { %s } is deprecated. Pass it as a native element instead.",t),u[t]=up.element.get(u[t]));"auto"===u.fail&&(up.migrate.warn("The option { fail: 'auto' } is deprecated. Omit the option instead."),delete u.fail);let t=e.pluckKey(u,"solo");e.isString(t)?(up.migrate.warn("The up.render() option { solo } has been replaced with { abort } and { abort } no longer accepts a URL pattern. Check if you can use { abort: 'target'} or use up.network.abort(pattern) instead."),u.abort=e=>up.network.abort(t,e)):e.isFunction(t)?(up.migrate.warn("The up.render() option { solo } has been replaced with { abort } and { abort } no longer accepts a Function(up.Request): boolean. Check if you can use { abort: 'target'} or use up.network.abort(fn) instead."),u.abort=e=>{up.network.abort(t,e)}):!0===t?(up.migrate.deprecated("Option { solo: true }","{ abort: 'all' }"),u.abort="all"):!1===t&&(up.migrate.deprecated("Option { solo: false }","{ abort: false }"),up.migrate.warn("Unpoly 3+ only aborts requests targeting the same fragment. Setting { solo: false } may no longer be necessary."),u.abort=!1),up.migrate.fixKey(u,"keep","useKeep"),up.migrate.fixKey(u,"hungry","useHungry"),up.migrate.fixKey(u,"failOnFinished","onFailFinished"),e.isString(u.reveal)?(up.migrate.deprecated(`Option { reveal: '${u.reveal}' }`,`{ scroll: '${u.reveal}' }`),u.scroll=u.reveal):!0===u.reveal?(up.migrate.deprecated("Option { reveal: true }","{ scroll: 'target' }"),u.scroll="target"):!1===u.reveal&&(up.migrate.deprecated("Option { reveal: false }","{ scroll: false }"),u.scroll=!1),!0===u.resetScroll&&(up.migrate.deprecated("Option { resetScroll: true }","{ scroll: 'reset' }"),u.scroll="reset"),!1===u.resetScroll&&(up.migrate.deprecated("Option { resetScroll: false }","{ scroll: false }"),u.scroll=!1),!0===u.restoreScroll&&(up.migrate.deprecated("Option { restoreScroll: true }","{ scroll: 'restore' }"),u.scroll="restore"),!1===u.restoreScroll&&(up.migrate.deprecated("Option { restoreScroll: false }","{ scroll: false }"),u.scroll=!1)},up.migrate.postprocessReloadOptions=function(e){var u;let t,p=null===(u=e.headers)||void 0===u?void 0:u["If-Modified-Since"];t=p?Math.floor(.001*new Date(p)).toString():"0",e.headers[up.protocol.headerize("reloadFromTime")]=t},up.migrate.resolveOrigin=function(e,{origin:u}={}){return e.replace(/"[^"]*"|'[^']*'|&|:origin\b/g,(function(t){return":origin"!==t&&"&"!==t?t:("&"===t&&up.migrate.deprecated("Origin shorthand '&'",":origin"),u?up.fragment.toTarget(u):void up.fail('Missing { origin } element to resolve "%s" reference (found in %s)',t,e))}))},up.migrate.removedEvent("up:fragment:kept","up:fragment:keep");let t=up.fragment.config.runScripts,p=!1;Object.defineProperty(up.fragment.config,"runScripts",{get:()=>t,set(e){t=e,p=!0}}),up.on("up:framework:boot",(function(){p||up.migrate.warn("Scripts within fragments are now executed. Configure up.fragment.config.runScripts to remove this warning.")})),up.compiler("[up-keep]",(function(u){let t=up.element.booleanOrStringAttr(u,"up-keep");e.isString(t)&&(up.migrate.warn('The [up-keep] attribute no longer supports a selector value. Elements will be matched by their derived target. You may prevent keeping with [up-on-keep="if(condition) event.preventDefault()"]. '),up.element.setMissingAttr(u,"up-on-keep",`if (!newFragment.matches(${JSON.stringify(t)})) event.preventDefault()`),u.setAttribute("up-keep",""))}))},234:()=>{up.migrate.renamedEvent("up:app:booted","up:framework:booted")},869:()=>{up.migrate.renamedProperty(up.history.config,"popTargets","restoreTargets"),up.history.url=function(){return up.migrate.deprecated("up.history.url()","up.history.location"),up.history.location},up.migrate.renamedEvent("up:history:push","up:location:changed"),up.migrate.renamedEvent("up:history:pushed","up:location:changed"),up.migrate.renamedEvent("up:history:restore","up:location:changed"),up.migrate.renamedEvent("up:history:restored","up:location:changed"),up.migrate.renamedEvent("up:history:replaced","up:location:changed"),up.migrate.removedEvent("up:fragment:kept","up:fragment:keep");let e=up.history.config.updateMetaTags,u=!1;Object.defineProperty(up.history.config,"updateMetaTags",{get:()=>e,set(t){e=t,u=!0}}),up.on("up:framework:boot",(function(){u||up.migrate.warn("Meta tags in the <head> are now updated automatically. Configure up.history.config.updateMetaTags to remove this warning.")})),up.migrate.warnOfHungryMetaTags=function(e){let u=up.radio.config.hungrySelectors.join(),t=up.util.filter(e,(e=>e.matches(u)));t.length&&up.migrate.warn("Meta tags in the <head> are now updated automatically. Remove the [up-hungry] attribute from %o.",t)}},905:()=>{up.migrate.handleLayerOptions=function(e){up.migrate.fixKey(e,"flavor","mode"),up.migrate.fixKey(e,"closable","dismissable"),up.migrate.fixKey(e,"closeLabel","dismissLabel");for(let u of["width","maxWidth","height"])e[u]&&up.migrate.warn(`Layer option { ${u} } has been removed. Use { size } or { class } instead.`);e.sticky&&up.migrate.warn("Layer option { sticky } has been removed. Give links an [up-peel=false] attribute to prevent layer dismissal on click."),e.template&&up.migrate.warn("Layer option { template } has been removed. Use { class } or modify the layer HTML on up:layer:open."),"page"===e.layer&&(up.migrate.warn("Option { layer: 'page' } has been renamed to { layer: 'root' }."),e.layer="root"),"modal"!==e.layer&&"popup"!==e.layer||(up.migrate.warn(`Option { layer: '${e.layer}' } has been removed. Did you mean { layer: 'overlay' }?`),e.layer="overlay")},up.migrate.handleTetherOptions=function(e){const[u,t]=e.position.split("-");t&&(up.migrate.warn("The position value %o is deprecated. Use %o instead.",e.position,{position:u,align:t}),e.position=u,e.align=t)},up.migrate.registerLayerCloser=e=>e.registerClickCloser("up-close",((u,t)=>{up.migrate.deprecated("[up-close]","[up-dismiss]"),e.dismiss(u,t)})),up.migrate.handleLayerConfig=e=>up.migrate.fixKey(e,"historyVisible","history"),Object.defineProperty(up.Layer.prototype,"historyVisible",{get:function(){return up.migrate.deprecated("up.Layer#historyVisible","up.Layer#history"),this.history}})},969:()=>{up.migrate.renamedAttribute("up-flavor","up-mode",{scope:up.link.followSelector}),up.migrate.renamedAttribute("up-closable","up-dismissable",{scope:up.link.followSelector}),up.migrate.removedAttribute("up-width",{scope:up.link.followSelector,replacement:"[up-size] or [up-class]"}),up.migrate.removedAttribute("up-height",{scope:up.link.followSelector,replacement:"[up-size] or [up-class]"}),up.migrate.renamedAttribute("up-history-visible","up-history",{scope:up.link.followSelector}),up.migrate.renamedAttribute("up-clear-cache","up-expire-cache",{scope:up.link.followSelector}),up.migrate.transformAttribute("up-solo",(function(e,u){switch(u){case"":up.migrate.warn('Attribute [up-solo] has been replaced with [up-abort="all"]'),e.setAttribute("up-abort","all");break;case"true":up.migrate.warn('Attribute [up-solo="true"] has been replaced with [up-abort="all"]'),e.setAttribute("up-abort","all");break;case"false":up.migrate.warn('Attribute [up-solo="false"] has been replaced with [up-abort="false"]'),up.migrate.warn('Unpoly 3+ only aborts requests targeting the same fragment. Setting [up-solo="false"] may no longer be necessary.'),e.setAttribute("up-abort","false");break;default:up.migrate.warn('Attribute [up-solo] has been renamed to [up-abort] and [up-abort] no longer accepts a URL pattern. Check if you can use [up-abort="target"] instead.'),e.setAttribute("up-abort","target")}})),up.migrate.transformAttribute("up-reveal",(function(e,u){switch(u){case"":up.migrate.warn('Attribute [up-reveal] has been replaced with [up-scroll="target"]'),e.setAttribute("up-scroll","target");break;case"true":up.migrate.warn('Attribute [up-reveal="true"] has been replaced with [up-scroll="target"]'),e.setAttribute("up-scroll","target");break;case"false":up.migrate.warn('Attribute [up-reveal="false"] has been replaced with [up-scroll="false"]'),e.setAttribute("up-scroll","false");break;default:up.migrate.warn('Attribute [up-reveal="%s"] has been replaced with [up-scroll="%s"]',u)}})),up.migrate.transformAttribute("up-reset-scroll",(function(e,u){switch(u){case"":up.migrate.warn('Attribute [up-reset-scroll] has been replaced with [up-scroll="reset"]'),e.setAttribute("up-scroll","reset");break;case"true":up.migrate.warn('Attribute [up-reset-scroll="true"] has been replaced with [up-scroll="reset"]'),e.setAttribute("up-scroll","reset");break;case"false":up.migrate.warn('Attribute [up-reset-scroll="false"] has been replaced with [up-scroll="false"]'),e.setAttribute("up-scroll","false")}})),up.migrate.transformAttribute("up-restore-scroll",(function(e,u){switch(u){case"":up.migrate.warn('Attribute [up-restore-scroll] has been replaced with [up-scroll="restore"]'),e.setAttribute("up-scroll","restore");break;case"true":up.migrate.warn('Attribute [up-restore-scroll="true"] has been replaced with [up-scroll="restore"]'),e.setAttribute("up-scroll","restore");break;case"false":up.migrate.warn('Attribute [up-restore-scroll="false"] has been replaced with [up-scroll="false"]'),e.setAttribute("up-scroll","false")}})),up.migrate.targetMacro("up-dash",{"up-preload":"","up-instant":""},(()=>up.migrate.deprecated("a[up-dash]","up.link.config.instantSelectors and up.link.config.preloadSelectors"))),up.migrate.renamedAttribute("up-delay","up-preload-delay",{scope:up.link.preloadSelector}),up.link.config.preloadEnabled=!0;let e=up.migrate.removedProperty(up.link.config,"preloadEnabled","The configuration up.link.config.preloadEnabled has been removed. To disable preloading, prevent up:link:preload instead.");up.on("up:link:preload",(function(u){e[0]||u.preventDefault()}))},992:()=>{const e=up.util;up.migrate=function(){const u=new up.Config((()=>({logLevel:"warn"})));function t(u,...t){let p=e.extractCallback(t),{scope:r}=e.extractOptions(t),o=r||`[${u}]`;up.macro(o,{priority:-1e3},(function(e){if(e.hasAttribute(u)){let t=e.getAttribute(u);p(e,t)}}))}const p={},r={};function o(e){let u=p[e];if(u)return a(`Event ${e} has been renamed to ${u}`),u;if(e in r){let u=`Event ${e} has been removed`,t=r[e];return t&&(u+=`. Use ${t} instead.`),a(u),e}return e}const n={};function a(t,...p){const r=e.sprintf(t,...p);n[r]||(n[r]=!0,up.log[u.logLevel]("unpoly-migrate",t,...p))}return up.on("up:framework:reset",(function(){u.reset()})),{deprecated:function(e,u){a(`${e} has been deprecated. Use ${u} instead.`)},renamedPackage:function(e,u){Object.defineProperty(up,e,{get:()=>(a(`up.${e} has been renamed to up.${u}`),up[u])})},renamedProperty:function(u,t,p,r){const o=e.memoize((()=>r?a(r):a("Property { %s } has been renamed to { %s } (found in %o)",t,p,u)));Object.defineProperty(u,t,{get(){return o(),this[p]},set(e){o(),this[p]=e}})},removedProperty:function(u,t,p){const r=e.memoize((()=>p?a(p):a("Property { %s } has been removed without replacement (found in %o)",t,u)));let o=[u[t]];return Object.defineProperty(u,t,{get:()=>(r(),o[0]),set(e){r(),o[0]=e}}),o},forbiddenPropertyValue:function(e,u,t,p){let r=e[u];Object.defineProperty(e,u,{get:()=>r,set(e){if(e===t)throw new Error(p);r=e}})},transformAttribute:t,renamedAttribute:function(u,p,{scope:r,mapValue:o}={}){t(u,{scope:r},(function(t,r){a("Attribute [%s] has been renamed to [%s] (found in %o)",u,p,t),o&&(r=e.evalOption(o,r)),t.setAttribute(p,r)}))},removedAttribute:function(e,{scope:u,replacement:p}={}){t(e,{scope:u},(function(u,t){p?a("Attribute [%s] has been removed (found in %o). Use %s instead.",e,u,p):a("Attribute [%s] has been removed without replacement (found in %o)",e,u)}))},formerlyAsync:function(e){const u=Promise.resolve(),t=u.then;return u.then=function(){return a(`${e} no longer returns a promise`),t.apply(this,arguments)},u},renamedEvent:function(e,u){p[e]=u},removedEvent:function(e,u=null){r[e]=u},fixEventTypes:function(u){return e.uniq(e.map(u,o))},fixKey:function(u,t,p){e.isDefined(u[t])&&(a("Property { %s } has been renamed to { %s } (found in %o)",t,p,u),e.renameKey(u,t,p))},warn:a,loaded:!0,config:u}}()},413:()=>{const e=new Error("up.modal.flavors has been removed without direct replacement. You may give new layers a { class } or modify layer elements on up:layer:open.");up.modal={visit:(e,u={})=>(up.migrate.deprecated("up.modal.visit(url)",'up.layer.open({ url, mode: "modal" })'),up.layer.open(Object.assign(Object.assign({},u),{url:e,mode:"modal"}))),follow:(e,u={})=>(up.migrate.deprecated("up.modal.follow(link)",'up.follow(link, { layer: "modal" })'),up.follow(e,Object.assign(Object.assign({},u),{layer:"modal"}))),extract:(e,u,t={})=>(up.migrate.deprecated("up.modal.extract(target, document)",'up.layer.open({ document, mode: "modal" })'),up.layer.open(Object.assign(Object.assign({},t),{target:e,html:u,layer:"modal"}))),close:(e={})=>(up.migrate.deprecated("up.modal.close()","up.layer.dismiss()"),up.layer.dismiss(null,e),up.migrate.formerlyAsync("up.layer.dismiss()")),url:()=>(up.migrate.deprecated("up.modal.url()","up.layer.location"),up.layer.location),coveredUrl(){var e;return up.migrate.deprecated("up.modal.coveredUrl()","up.layer.parent.location"),null===(e=up.layer.parent)||void 0===e?void 0:e.location},get config(){return up.migrate.deprecated("up.modal.config","up.layer.config.modal"),up.layer.config.modal},contains:e=>(up.migrate.deprecated("up.modal.contains()","up.layer.contains()"),up.layer.contains(e)),isOpen:()=>(up.migrate.deprecated("up.modal.isOpen()","up.layer.isOverlay()"),up.layer.isOverlay()),get flavors(){throw e},flavor(){throw e}},up.migrate.renamedEvent("up:modal:open","up:layer:open"),up.migrate.renamedEvent("up:modal:opened","up:layer:opened"),up.migrate.renamedEvent("up:modal:close","up:layer:dismiss"),up.migrate.renamedEvent("up:modal:closed","up:layer:dismissed"),up.migrate.targetMacro("up-modal",{"up-layer":"new modal"},(()=>up.migrate.deprecated("a[up-modal]",'a[up-layer="new modal"]'))),up.migrate.targetMacro("up-drawer",{"up-layer":"new drawer"},(()=>up.migrate.deprecated("a[up-drawer]",'a[up-layer="new drawer"]')))},885:()=>{const e=up.util;up.migrate.renamedPackage("proxy","network"),up.migrate.renamedEvent("up:proxy:load","up:request:load"),up.migrate.renamedEvent("up:proxy:received","up:request:loaded"),up.migrate.renamedEvent("up:proxy:loaded","up:request:loaded"),up.migrate.renamedEvent("up:proxy:fatal","up:request:offline"),up.migrate.renamedEvent("up:request:fatal","up:request:offline"),up.migrate.renamedEvent("up:proxy:aborted","up:request:aborted"),up.migrate.renamedEvent("up:proxy:slow","up:network:late"),up.migrate.renamedEvent("up:proxy:recover","up:network:recover"),up.migrate.renamedEvent("up:request:late","up:network:late"),up.migrate.renamedEvent("up:request:recover","up:network:recover");const u=()=>up.migrate.deprecated("up.proxy.config.preloadDelay","up.link.config.preloadDelay");Object.defineProperty(up.network.config,"preloadDelay",{get:()=>(u(),up.link.config.preloadDelay),set(e){u(),up.link.config.preloadDelay=e}}),up.migrate.renamedProperty(up.network.config,"maxRequests","concurrency"),up.migrate.renamedProperty(up.network.config,"slowDelay","badResponseTime"),up.migrate.renamedProperty(up.network.config,"cacheExpiry","cacheExpireAge",'The configuration up.network.config.cacheExpiry has been renamed to up.network.config.cacheExpireAge. Note that Unpoly 3+ automatically reloads cached content after rendering to ensure users always see fresh data ("cache revalidation"). Setting a custom expiry may no longer be necessary.'),up.migrate.renamedProperty(up.network.config,"clearCache","expireCache"),up.migrate.forbiddenPropertyValue(up.network.config,"cacheSize",0,"Disabling the cache with up.network.config.cacheSize = 0 is no longer supported. To disable automatic caching during navigation, set up.fragment.config.navigateOptions.cache = false instead."),up.network.config.requestMetaKeys=[],up.migrate.removedProperty(up.network.config,"requestMetaKeys","The configuration up.network.config.requestMetaKeys has been removed. Servers that optimize responses based on request headers should instead set a Vary response header."),up.migrate.handleRequestOptions=function(e){up.migrate.fixKey(e,"clearCache","expireCache"),e.solo&&up.migrate.warn("The option up.request({ solo }) has been removed. Use up.network.abort() or up.fragment.abort() instead.")},up.ajax=function(...e){return up.migrate.deprecated("up.ajax()","up.request()"),up.request(...e).then((e=>e.text))},up.network.clear=function(){up.migrate.deprecated("up.proxy.clear()","up.cache.expire()"),up.cache.expire()},up.Request.Cache.prototype.clear=function(...e){up.migrate.deprecated("up.cache.clear()","up.cache.expire()"),this.expire(...e)},up.network.preload=function(...e){return up.migrate.deprecated("up.proxy.preload(link)","up.link.preload(link)"),up.link.preload(...e)},up.migrate.preprocessAbortArgs=function(u){2===u.length&&e.isString(u[1])&&(up.migrate.warn("up.network.abort() no longer takes a reason as a second argument. Pass it as { reason } option instead."),u[1]={reason:u[1]})},up.network.isIdle=function(){return up.migrate.deprecated("up.network.isIdle()","!up.network.isBusy()"),!up.network.isBusy()},up.Request.prototype.navigate=function(){up.migrate.deprecated("up.Request#navigate()","up.Request#loadPage()"),this.loadPage()},up.migrate.renamedProperty(up.Request.prototype,"preload","background"),up.Response.prototype.isSuccess=function(){return up.migrate.deprecated("up.Response#isSuccess()","up.Response#ok"),this.ok},up.Response.prototype.getHeader=function(e){return up.migrate.deprecated("up.Response#getHeader()","up.Response#header()"),this.header(e)},up.Response.prototype.isError=function(){return up.migrate.deprecated("up.Response#isError()","!up.Response#ok"),!this.ok};const t=up.network.config.progressBar;function p(){up.network.config.progressBar=function(){return function(){const u=up.EventListener.allNonDefault(document);return e.find(u,(e=>"up:network:late"===e.eventType))}()?(up.migrate.warn("Disabled the default progress bar as may have built a custom loading indicator with your up:network:late listener. Please set up.network.config.progressBar to true or false."),!1):t}}p(),up.on("up:framework:reset",p),up.network.shouldReduceRequests=function(){return up.migrate("up.network.shouldReduceRequests() has been removed without replacement"),!1},up.migrate.removedProperty(up.network.config,"badRTT"),up.migrate.removedProperty(up.network.config,"badDownlink")},69:()=>{up.popup={attach:(e,u={})=>(e=up.fragment.get(e),up.migrate.deprecated("up.popup.attach(origin)","up.layer.open({ origin, layer: 'popup' })"),up.layer.open(Object.assign(Object.assign({},u),{origin:e,layer:"popup"}))),close:(e={})=>(up.migrate.deprecated("up.popup.close()","up.layer.dismiss()"),up.layer.dismiss(null,e),up.migrate.formerlyAsync("up.layer.dismiss()")),url:()=>(up.migrate.deprecated("up.popup.url()","up.layer.location"),up.layer.location),coveredUrl(){var e;return up.migrate.deprecated("up.popup.coveredUrl()","up.layer.parent.location"),null===(e=up.layer.parent)||void 0===e?void 0:e.location},get config(){return up.migrate.deprecated("up.popup.config","up.layer.config.popup"),up.layer.config.popup},contains:e=>(up.migrate.deprecated("up.popup.contains()","up.layer.contains()"),up.layer.contains(e)),isOpen:()=>(up.migrate.deprecated("up.popup.isOpen()","up.layer.isOverlay()"),up.layer.isOverlay()),sync:()=>(up.migrate.deprecated("up.popup.sync()","up.layer.sync()"),up.layer.sync())},up.migrate.renamedEvent("up:popup:open","up:layer:open"),up.migrate.renamedEvent("up:popup:opened","up:layer:opened"),up.migrate.renamedEvent("up:popup:close","up:layer:dismiss"),up.migrate.renamedEvent("up:popup:closed","up:layer:dismissed"),up.migrate.targetMacro("up-popup",{"up-layer":"new popup"},(()=>up.migrate.deprecated("[up-popup]",'[up-layer="new popup"]')))},677:()=>{up.migrate.clearCacheFromXHR=function(e){let u=e.getResponseHeader("X-Up-Clear-Cache");if(u)return up.migrate.deprecated("X-Up-Clear-Cache","X-Up-Expire-Cache"),"false"!==u&&u},up.migrate.titleFromXHR=function(e){let u=e.getResponseHeader("X-Up-Title");if(u){if("false"===u)return!1;if('"'!==u[0])return up.migrate.warn("X-Up-Title must now be a JSON-encoded string"),u}}},228:()=>{const e=up.element;up.migrate.renamedProperty(up.radio.config,"hungry","hungrySelectors"),up.radio.config.pollEnabled=!0;let u=up.migrate.removedProperty(up.radio.config,"pollEnabled","The configuration up.radio.config.pollEnabled has been removed. To disable polling, prevent up:fragment:poll instead.");up.on("up:fragment:poll",(function(e){u[0]||e.preventDefault()})),up.compiler("[up-hungry][up-if-history]",(function(u){e.booleanAttr(u,"up-if-history")&&u.addEventListener("up:fragment:hungry",(function(e){e.renderOptions.history||e.preventDefault()}))}))},771:()=>{const e=up.util,u=up.element;up.migrate.renamedPackage("syntax","script"),up.migrate.postCompile=function(u,t){let p;if(p=t.keep){up.migrate.warn("The { keep: true } option for up.compiler() has been removed. Have the compiler set [up-keep] attribute instead.");const t=e.isString(p)?p:"";for(let e of u)e.setAttribute("up-keep",t)}},up.migrate.targetMacro=function(t,p,r){up.macro(`[${t}]`,(function(o){let n;const a=e.copy(p);(n=o.getAttribute(t))?a["up-target"]=n:a["up-follow"]="",u.setMissingAttrs(o,a),o.removeAttribute(t),null==r||r()}))},up.$compiler=function(...e){up.migrate.warn("up.$compiler() has been deprecated. Instead use up.compiler() with a callback that wraps the given native element in a jQuery collection.");let u=e.pop();return up.compiler(...e,(function(e,...t){let p=jQuery(e);return u(p,...t)}))},up.$macro=function(...e){up.migrate.warn("up.$macro() has been deprecated. Instead use up.macro() with a callback that wraps the given native element in a jQuery collection.");let u=e.pop();return up.macro(...e,(function(e,...t){let p=jQuery(e);return u(p,...t)}))},up.migrate.processCompilerPassMeta=function(e,u){Object.defineProperty(e,"response",{get:()=>(up.migrate.warn("Accessing meta.response from a compiler has been deprecated without replacement. Avoid fragments that compile differently for the initial page load vs. subsequent fragment updates."),u)})}},197:()=>{up.macro("[up-tooltip]",(function(e){up.migrate.warn("[up-tooltip] has been deprecated. A [title] was set instead."),up.element.setMissingAttr(e,"title",e.getAttribute("up-tooltip"))}))},480:()=>{up.util.only=function(e,...u){return up.migrate.deprecated("up.util.only(object, ...keys)","up.util.pick(object, keys)"),up.util.pick(e,u)},up.util.except=function(e,...u){return up.migrate.deprecated("up.util.except(object, ...keys)","up.util.omit(object, keys)"),up.util.omit(e,u)},up.util.parseUrl=function(...e){return up.migrate.deprecated("up.util.parseUrl()","up.util.parseURL()"),up.util.parseURL(...e)},up.util.any=function(...e){return up.migrate.deprecated("up.util.any()","up.util.some()"),up.util.some(...e)},up.util.all=function(...e){return up.migrate.deprecated("up.util.all()","up.util.every()"),up.util.every(...e)},up.util.detect=function(...e){return up.migrate.deprecated("up.util.detect()","up.util.find()"),up.util.find(...e)},up.util.select=function(...e){return up.migrate.deprecated("up.util.select()","up.util.filter()"),up.util.filter(...e)},up.util.setTimer=function(...e){return up.migrate.deprecated("up.util.setTimer()","up.util.timer()"),up.util.timer(...e)},up.util.escapeHtml=function(...e){return up.migrate.deprecated("up.util.escapeHtml()","up.util.escapeHTML()"),up.util.escapeHTML(...e)},up.util.selectorForElement=function(...e){return up.migrate.deprecated("up.util.selectorForElement()","up.fragment.toTarget()"),up.fragment.toTarget(...e)},up.util.nextFrame=function(...e){return up.migrate.deprecated("up.util.nextFrame()","up.util.task()"),up.util.task(...e)},up.util.times=function(e,u){up.migrate.deprecated("up.util.times()","a `for` loop");for(let t=0;t<e;t++)u()},up.util.assign=function(...e){return up.migrate.deprecated("up.util.assign()","Object.assign()"),Object.assign(...e)},up.util.values=function(...e){return up.migrate.deprecated("up.util.values()","Object.values()"),Object.values(...e)}},338:()=>{up.migrate.renamedPackage("layout","viewport"),up.migrate.renamedProperty(up.viewport.config,"viewports","viewportSelectors"),up.migrate.renamedProperty(up.viewport.config,"fixedTop","fixedTopSelectors"),up.migrate.renamedProperty(up.viewport.config,"fixedBottom","fixedBottomSelectors"),up.migrate.renamedProperty(up.viewport.config,"anchoredRight","anchoredRightSelectors"),up.migrate.renamedProperty(up.viewport.config,"snap","revealSnap"),up.migrate.removedProperty(up.viewport.config,"scrollSpeed"),up.viewport.closest=function(...e){return up.migrate.deprecated("up.viewport.closest()","up.viewport.get()"),up.viewport.get(...e)},up.viewport.scroll=function(e,u,t={}){return up.migrate.deprecated("up.scroll()","Element#scrollTo()"),(e=up.fragment.get(e,t)).scrollTo(Object.assign(Object.assign({},t),{top:u})),up.migrate.formerlyAsync("up.scroll()")},up.scroll=up.viewport.scroll}},u={};function t(p){var r=u[p];if(void 0!==r)return r.exports;var o=u[p]={exports:{}};return e[p](o,o.exports,t),o.exports}up.framework.startExtension(),t(992),t(480),t(937),t(294),t(700),t(394),t(771),t(305),t(354),t(234),t(869),t(729),t(969),t(905),t(413),t(69),t(197),t(677),t(885),t(228),t(338),up.framework.stopExtension()})();