unpoly-rails 3.11.0 → 3.12.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: ed3b99270a3972faa22feb189c2195a4ed9a47ab0e04479d121e548d1f8d6f0a
4
- data.tar.gz: c2bc6af18af8fa2325f3820094cdafac21356892e655b914f19c7e2c3e79eab3
3
+ metadata.gz: ef0fc9fc73ac060a77f0d365affe38309f093ef703fcce67308596792e8ac2b3
4
+ data.tar.gz: 1a26ec91f4c44875f5d31f9ed55174a8c8b46d782802ae422b9f39ea72a44d89
5
5
  SHA512:
6
- metadata.gz: fce8f19e49edb84ab10d6b8a37027520364e55ff3c4b15041e723447a905ef915046cd4385f5d1010135617e495c7c4f03d44d0f9d6474a9ce9a4d70637ae563
7
- data.tar.gz: 22182ec5e245c1e505b56ee2f0dede1853fc8955abbdbc395a9d2d6b2609ec53392009641074d7240e5ec24d8a5e13a12145770cbf7356c75fd23d7398b3fa3a
6
+ metadata.gz: b7ea9beb144bf807c501aaa4d3b2075cffa70e50177495dc4aa330f8281cff3c7b7ce501fecb250f0173c6e5dac291b7ae6e06c887d879cd0c8eb5b1bc2dd1c3
7
+ data.tar.gz: afb2abefa236d33e39ae7f2be972ccc2c1653c7fda99d1b992e43affe68930f5478f85c682103fa14605c582e45b73671b76157c97809486481ab1a8557104f6
@@ -148,7 +148,7 @@ up.migrate = (function () {
148
148
  const promise = Promise.resolve();
149
149
  const oldThen = promise.then;
150
150
  promise.then = function () {
151
- warn(`${label} no longer returns a promise`);
151
+ warn(`${label} is now sync and no longer returns a promise`);
152
152
  return oldThen.apply(this, arguments);
153
153
  };
154
154
  return promise;
@@ -209,12 +209,26 @@ up.migrate = (function () {
209
209
  }
210
210
  return transformed;
211
211
  }
212
+ function defineThrowingProps(object, forbiddenPrototype, errorMessage) {
213
+ let complain = () => { throw new TypeError(errorMessage); };
214
+ for (const propName of Object.getOwnPropertyNames(forbiddenPrototype)) {
215
+ if (!(propName in object)) {
216
+ Object.defineProperty(object, propName, {
217
+ get: complain,
218
+ set: complain,
219
+ enumerable: false,
220
+ configurable: false,
221
+ });
222
+ }
223
+ }
224
+ }
212
225
  up.on('up:framework:reset', reset);
213
226
  return {
214
227
  deprecated,
215
228
  renamedPackage,
216
229
  renamedProperty,
217
230
  removedProperty,
231
+ defineThrowingProps,
218
232
  forbiddenPropertyValue,
219
233
  transformAttribute,
220
234
  renamedAttribute,
@@ -262,6 +276,20 @@ up.migrate.renamedProperty(up.RenderResult.prototype, 'options', 'renderOptions'
262
276
  /* 5 */
263
277
  /***/ (() => {
264
278
 
279
+ up.Layer.prototype.isOpen = function () {
280
+ up.migrate.deprecated('up.Layer#isOpen()', 'up.Layer#isAlive()');
281
+ return this.isAlive();
282
+ };
283
+ up.Layer.prototype.isClosed = function () {
284
+ up.migrate.deprecated('up.Layer#isClosed()', '!up.Layer#isAlive()');
285
+ return !this.isAlive();
286
+ };
287
+
288
+
289
+ /***/ }),
290
+ /* 6 */
291
+ /***/ (() => {
292
+
265
293
  up.util.only = function (object, ...keys) {
266
294
  up.migrate.deprecated('up.util.only(object, ...keys)', 'up.util.pick(object, keys)');
267
295
  return up.util.pick(object, keys);
@@ -331,7 +359,7 @@ up.migrate.splitAtOr = function (value) {
331
359
 
332
360
 
333
361
  /***/ }),
334
- /* 6 */
362
+ /* 7 */
335
363
  /***/ (() => {
336
364
 
337
365
  class DeprecatedCannotCompile extends up.Error {
@@ -343,7 +371,7 @@ Object.defineProperty(up, 'CannotCompile', { get: function () {
343
371
 
344
372
 
345
373
  /***/ }),
346
- /* 7 */
374
+ /* 8 */
347
375
  /***/ (() => {
348
376
 
349
377
  up.browser.loadPage = function (...args) {
@@ -357,7 +385,7 @@ up.browser.isSupported = function (...args) {
357
385
 
358
386
 
359
387
  /***/ }),
360
- /* 8 */
388
+ /* 9 */
361
389
  /***/ (() => {
362
390
 
363
391
  up.element.first = function (...args) {
@@ -418,7 +446,7 @@ up.element.isDetached = function (element) {
418
446
 
419
447
 
420
448
  /***/ }),
421
- /* 9 */
449
+ /* 10 */
422
450
  /***/ (() => {
423
451
 
424
452
  up.migrate.renamedPackage('bus', 'event');
@@ -448,7 +476,7 @@ up.$off = function (...definitionArgs) {
448
476
 
449
477
 
450
478
  /***/ }),
451
- /* 10 */
479
+ /* 11 */
452
480
  /***/ (() => {
453
481
 
454
482
  const u = up.util;
@@ -501,10 +529,21 @@ up.migrate.processCompilerPassMeta = function (meta, response) {
501
529
  return response;
502
530
  } });
503
531
  };
532
+ let modernHello = up.hello;
533
+ let errorMessage = 'up.hello() is now async and returns a promise';
534
+ class WasElementIsPromise extends Promise {
535
+ }
536
+ up.migrate.defineThrowingProps(WasElementIsPromise.prototype, Element.prototype, errorMessage);
537
+ up.migrate.defineThrowingProps(WasElementIsPromise.prototype, Node.prototype, errorMessage);
538
+ up.migrate.defineThrowingProps(WasElementIsPromise.prototype, EventTarget.prototype, errorMessage);
539
+ up.hello = function (element, ...args) {
540
+ let elementPromise = modernHello(element, ...args);
541
+ return WasElementIsPromise.resolve(elementPromise);
542
+ };
504
543
 
505
544
 
506
545
  /***/ }),
507
- /* 11 */
546
+ /* 12 */
508
547
  /***/ (() => {
509
548
 
510
549
  up.form.config.patch(function (config) {
@@ -545,7 +584,7 @@ up.observe = function (...args) {
545
584
 
546
585
 
547
586
  /***/ }),
548
- /* 12 */
587
+ /* 13 */
549
588
  /***/ (() => {
550
589
 
551
590
  const u = up.util;
@@ -682,7 +721,6 @@ up.migrate.resolveOrigin = function (target, { origin } = {}) {
682
721
  }
683
722
  });
684
723
  };
685
- up.migrate.removedEvent('up:fragment:kept', 'up:fragment:keep');
686
724
  up.fragment.config.patch(function () {
687
725
  this.runScriptsValue = this.runScripts;
688
726
  this.runScriptsSet = false;
@@ -713,14 +751,17 @@ up.compiler('[up-keep]', function (element) {
713
751
 
714
752
 
715
753
  /***/ }),
716
- /* 13 */
754
+ /* 14 */
717
755
  /***/ (() => {
718
756
 
719
757
  up.migrate.renamedEvent('up:app:booted', 'up:framework:booted');
758
+ if (document.querySelector('script[up-boot=manual]')) {
759
+ up.migrate.warn('The [up-boot="manual"] attribute must be set on the <html> element');
760
+ }
720
761
 
721
762
 
722
763
  /***/ }),
723
- /* 14 */
764
+ /* 15 */
724
765
  /***/ (() => {
725
766
 
726
767
  up.history.config.patch(function (config) {
@@ -767,7 +808,7 @@ up.migrate.warnOfHungryMetaTags = function (metaTags) {
767
808
 
768
809
 
769
810
  /***/ }),
770
- /* 15 */
811
+ /* 16 */
771
812
  /***/ (() => {
772
813
 
773
814
  up.migrate.renamedPackage('navigation', 'status');
@@ -778,7 +819,7 @@ up.status.config.patch(function (config) {
778
819
 
779
820
 
780
821
  /***/ }),
781
- /* 16 */
822
+ /* 17 */
782
823
  /***/ (() => {
783
824
 
784
825
  const followSelectorFn = up.link.config.selectorFn('followSelectors');
@@ -890,7 +931,7 @@ up.compiler(LEGACY_UP_HREF_FOLLOW_SELECTOR, function (element) {
890
931
 
891
932
 
892
933
  /***/ }),
893
- /* 17 */
934
+ /* 18 */
894
935
  /***/ (() => {
895
936
 
896
937
  up.migrate.handleLayerOptions = function (options) {
@@ -942,7 +983,7 @@ Object.defineProperty(up.Layer.prototype, 'historyVisible', { get: function () {
942
983
 
943
984
 
944
985
  /***/ }),
945
- /* 18 */
986
+ /* 19 */
946
987
  /***/ (() => {
947
988
 
948
989
  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.');
@@ -1001,7 +1042,7 @@ up.migrate.targetMacro('up-drawer', { 'up-layer': 'new drawer' }, () => up.migra
1001
1042
 
1002
1043
 
1003
1044
  /***/ }),
1004
- /* 19 */
1045
+ /* 20 */
1005
1046
  /***/ (() => {
1006
1047
 
1007
1048
  up.popup = {
@@ -1049,7 +1090,7 @@ up.migrate.targetMacro('up-popup', { 'up-layer': 'new popup' }, () => up.migrate
1049
1090
 
1050
1091
 
1051
1092
  /***/ }),
1052
- /* 20 */
1093
+ /* 21 */
1053
1094
  /***/ (() => {
1054
1095
 
1055
1096
  up.macro('[up-tooltip]', function (opener) {
@@ -1059,7 +1100,7 @@ up.macro('[up-tooltip]', function (opener) {
1059
1100
 
1060
1101
 
1061
1102
  /***/ }),
1062
- /* 21 */
1103
+ /* 22 */
1063
1104
  /***/ (() => {
1064
1105
 
1065
1106
  up.migrate.clearCacheFromXHR = function (xhr) {
@@ -1089,7 +1130,7 @@ up.migrate.titleFromXHR = function (xhr) {
1089
1130
 
1090
1131
 
1091
1132
  /***/ }),
1092
- /* 22 */
1133
+ /* 23 */
1093
1134
  /***/ (() => {
1094
1135
 
1095
1136
  const u = up.util;
@@ -1214,7 +1255,7 @@ up.network.config.patch(function (config) {
1214
1255
 
1215
1256
 
1216
1257
  /***/ }),
1217
- /* 23 */
1258
+ /* 24 */
1218
1259
  /***/ (() => {
1219
1260
 
1220
1261
  const e = up.element;
@@ -1244,7 +1285,7 @@ up.compiler('[up-hungry][up-if-history]', function (element) {
1244
1285
 
1245
1286
 
1246
1287
  /***/ }),
1247
- /* 24 */
1288
+ /* 25 */
1248
1289
  /***/ (() => {
1249
1290
 
1250
1291
  up.migrate.renamedPackage('layout', 'viewport');
@@ -1324,6 +1365,7 @@ __webpack_require__(21);
1324
1365
  __webpack_require__(22);
1325
1366
  __webpack_require__(23);
1326
1367
  __webpack_require__(24);
1368
+ __webpack_require__(25);
1327
1369
  up.framework.stopExtension();
1328
1370
 
1329
1371
  })();
@@ -1 +1 @@
1
- (()=>{var e={33:()=>{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)}},67:()=>{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"]')))},89:()=>{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 u=0;u<e;u++)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)},up.util.microtask=window.queueMicrotask,up.migrate.splitAtOr=function(e){let t=e.split(/\s+or\s+/);if(t.length>=2)return up.migrate.warn(`Separating tokens by \`or\` has been deprecated. Use a comma (\`,\`) instead. Found in "${e}".`),t}},154:()=>{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"))}))},162:()=>{const e=up.element;let t;up.radio.config.patch((function(e){up.migrate.renamedProperty(e,"hungry","hungrySelectors")})),up.radio.config.pollEnabled=!0,up.radio.config.patch((function(e){t=up.migrate.removedProperty(e,"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){t[0]||e.preventDefault()})),up.compiler("[up-hungry][up-if-history]",(function(t){e.booleanAttr(t,"up-if-history")&&t.addEventListener("up:fragment:hungry",(function(e){e.renderOptions.history||e.preventDefault()}))}))},204:()=>{up.migrate.renamedProperty(up.RenderJob.prototype,"options","renderOptions","up.RenderJob: Property { options } has been renamed to { renderOptions }")},267:()=>{up.form.config.patch((function(e){up.migrate.renamedProperty(e,"fields","fieldSelectors"),up.migrate.renamedProperty(e,"submitButtons","submitButtonSelectors"),up.migrate.renamedProperty(e,"validateTargets","groupSelectors"),up.migrate.renamedProperty(e,"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.watchForSwitch=function(e,t){if(e.matches("input[type=radio]"))return up.migrate.warn("Using [up-switch] on an individual radio button is deprecated (%o). Use [up-switch] on the container of a radio group instead.",e),up.on(e,"change",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 u=up.util.map(t,(t=>up.watch(t,...e)));return up.util.sequence(u)}return up.watch(...e)}},269:()=>{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]&&"'"!==t[0])return up.migrate.warn("X-Up-Title must now be a JSON-encoded string"),t}}},391:()=>{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"),up.network.config.patch((function(e){const t=()=>up.migrate.deprecated("up.proxy.config.preloadDelay","up.link.config.preloadDelay");Object.defineProperty(e,"preloadDelay",{configurable:!0,get:()=>(t(),up.link.config.preloadDelay),set(e){t(),up.link.config.preloadDelay=e}})})),up.network.config.patch((function(e){up.migrate.renamedProperty(e,"maxRequests","concurrency"),up.migrate.renamedProperty(e,"slowDelay","lateDelay"),up.migrate.renamedProperty(e,"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(e,"clearCache","expireCache"),up.migrate.forbiddenPropertyValue(e,"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(e,"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.on("up:request:loaded",(function(e){"false"===e.response.headers["X-Up-Expire-Cache"]&&up.migrate.warn("The server can no longer override an { expireCache } option using an `X-Up-Expire-Cache: false` response header"),"false"===e.response.headers["X-Up-Evict-Cache"]&&up.migrate.warn("The server can no longer override an { evictCache } option using an `X-Up-Evict-Cache: false` response header")})),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.migrate.renamedProperty(up.Request.prototype,"badResponseTime","lateDelay"),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;up.network.config.patch((function(u){u.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):t}})),up.network.shouldReduceRequests=function(){return up.migrate("up.network.shouldReduceRequests() has been removed without replacement"),!1},up.network.config.patch((function(e){up.migrate.removedProperty(e,"badRTT"),up.migrate.removedProperty(e,"badDownlink"),up.migrate.renamedProperty(e,"badResponseTime","lateDelay")}))},429:()=>{const e=up.link.config.selectorFn("followSelectors"),t=up.link.config.selectorFn("preloadSelectors");let u;up.migrate.renamedAttribute("up-flavor","up-mode",{scope:e}),up.migrate.renamedAttribute("up-closable","up-dismissable",{scope:e}),up.migrate.removedAttribute("up-width",{scope:e,replacement:"[up-size] or [up-class]"}),up.migrate.removedAttribute("up-height",{scope:e,replacement:"[up-size] or [up-class]"}),up.migrate.renamedAttribute("up-history-visible","up-history",{scope:e}),up.migrate.renamedAttribute("up-clear-cache","up-expire-cache",{scope:e}),up.migrate.renamedAttribute("up-bad-response-time","up-late-delay"),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="top"]'),e.setAttribute("up-scroll","top");break;case"true":up.migrate.warn('Attribute [up-reset-scroll="true"] has been replaced with [up-scroll="top"]'),e.setAttribute("up-scroll","top");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("[up-dash]","up.link.config.instantSelectors and up.link.config.preloadSelectors"))),up.migrate.renamedAttribute("up-delay","up-preload-delay",{scope:t}),up.link.config.patch((function(e){e.preloadEnabled=!0,u=up.migrate.removedProperty(e,"preloadEnabled","The configuration up.link.config.preloadEnabled has been removed. To disable preloading, prevent up:link:preload instead.")})),up.on("up:link:preload",(function(e){u[0]||e.preventDefault()}));const p="[up-href]:not([up-follow], [up-poll], [up-defer], [up-expand])";up.link.config.patch((function(e){e.clickableSelectors.push(p),e.followSelectors.push(p)})),up.compiler(p,(function(e){up.migrate.warn("Following links with only [up-href] has been deprecated. You must now also set an [up-follow] on the same link (found in %o).",e)}));const o=`[up-instant]:is(a[href], ${p})`;up.link.config.patch((function(e){e.followSelectors.push(o)})),up.compiler(p,(function(e){up.migrate.warn("Following links with only [up-instant] has been deprecated. You must now also set an [up-follow] on the same link (found in %o).",e)}))},516:()=>{up.migrate.handleLayerOptions=function(e){up.migrate.fixKey(e,"flavor","mode"),up.migrate.fixKey(e,"closable","dismissable"),up.migrate.fixKey(e,"closeLabel","dismissLabel"),up.migrate.fixKey(e,"dismissAriaLabel","dismissARIALabel");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.util.isMissing(e.layer)&&up.util.isGiven(e.mode)&&(up.migrate.warn('Opening a layer with only a { mode } option is deprecated. Pass { layer: "new", mode } instead.'),e.layer="new")},up.migrate.handleTetherOptions=function(e){const[t,u]=e.position.split("-");u&&(up.migrate.warn("The position value %o is deprecated. Use %o instead.",e.position,{position:t,align:u}),e.position=t,e.align=u)},up.migrate.registerLayerCloser=e=>e.registerAttrCloser("up-close",((t,u)=>{up.migrate.deprecated("[up-close]","[up-dismiss]"),e.dismiss(t,u)})),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}})},635:()=>{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}})},750:()=>{up.Config.prototype.patch=function(e){let t=e.bind(this,this);t(),document.addEventListener("up:framework:reset",t)}},753:()=>{up.migrate.renamedEvent("up:app:booted","up:framework:booted")},763:()=>{up.migrate.renamedPackage("layout","viewport"),up.viewport.config.patch((function(e){up.migrate.renamedProperty(e,"viewports","viewportSelectors"),up.migrate.renamedProperty(e,"fixedTop","fixedTopSelectors"),up.migrate.renamedProperty(e,"fixedBottom","fixedBottomSelectors"),up.migrate.renamedProperty(e,"anchoredRight","anchoredRightSelectors"),up.migrate.renamedProperty(e,"snap","revealSnap"),up.migrate.removedProperty(e,"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,u={}){return up.migrate.deprecated("up.scroll()","Element#scrollTo()"),(e=up.fragment.get(e,u)).scrollTo(Object.assign(Object.assign({},u),{top:t})),up.migrate.formerlyAsync("up.scroll()")},up.scroll=up.viewport.scroll},789:()=>{up.history.config.patch((function(e){up.migrate.renamedProperty(e,"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.prepareLocationChangedEvent=function(e){up.migrate.renamedProperty(e,"url","location")},up.history.config.patch((function(){this.updateMetaTagsValue=this.updateMetaTags,this.updateMetaTagsSet=!1,Object.defineProperty(this,"updateMetaTags",{configurable:!0,get(){return this.updateMetaTagsValue},set(e){this.updateMetaTagsValue=e,this.updateMetaTagsSet=!0}})})),up.on("up:framework:boot",(function(){up.history.config.updateMetaTagsSet||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 t=up.radio.config.selector("hungrySelectors"),u=up.util.filter(e,(e=>e.matches(t)));u.length&&up.migrate.warn("Meta tags in the <head> are now updated automatically. Remove the [up-hungry] attribute from %o.",u)}},832:()=>{const e=up.util;up.migrate=function(){const t=new up.Config((()=>({logLevel:"warn"})));function u(t,...u){let p=e.extractCallback(u),{scope:o}=e.extractOptions(u),n=o||`[${t}]`;up.macro(n,{priority:-1e3},(function(e){if(e.hasAttribute(t)){let u=e.getAttribute(t);p(e,u)}}))}const p={},o={};function n(e){let t=p[e];if(t)return a(`Event ${e} has been renamed to ${t}`),t;if(e in o){let t=`Event ${e} has been removed`,u=o[e];return u&&(t+=`. Use ${u} instead.`),a(t),e}return e}let r={};const a=up.mockable(((u,...p)=>{const o=e.sprintf(u,...p),n=t.logLevel;"none"===n||r[o]||(r[o]=!0,up.log[n]("unpoly-migrate",u,...p))})),i=["top","right","bottom","left","padding","padding-top","padding-right","padding-bottom","padding-left","margin","margin-top","margin-right","margin-bottom","margin-left","border-width","border-top-width","border-right-width","border-bottom-width","border-left-width","width","height","max-width","max-height","min-width","min-height"];function s(t){return/[A-Z]/.test(t)?(a(`CSS property names must be in kebab-case, but got camelCase "${t}"`),e.camelToKebabCase(t)):t}function l(e,t,u){return!u&&i.includes(e)&&/^[\d.]+$/.test(t)?(a(`CSS length values must have a unit, but got "${e}: ${t}". Use "${e}: ${t}px" instead.`),t+"px"):t}return up.on("up:framework:reset",(function(){r={}})),{deprecated:function(e,t){a(`${e} has been deprecated. Use ${t} instead.`)},renamedPackage:function(e,t){Object.defineProperty(up,e,{configurable:!0,get:()=>(a(`up.${e} has been renamed to up.${t}`),up[t])})},renamedProperty:function(t,u,p,o){const n=e.memoize((()=>o?a(o):a("Property { %s } has been renamed to { %s } (found in %o)",u,p,t)));Object.defineProperty(t,u,{configurable:!0,get(){return n(),this[p]},set(e){n(),this[p]=e}})},removedProperty:function(t,u,p){const o=e.memoize((()=>p?a(p):a("Property { %s } has been removed without replacement (found in %o)",u,t)));let n=[t[u]];return Object.defineProperty(t,u,{configurable:!0,get:()=>(o(),n[0]),set(e){o(),n[0]=e}}),n},forbiddenPropertyValue:function(e,t,u,p){let o=e[t];Object.defineProperty(e,t,{configurable:!0,get:()=>o,set(e){if(e===u)throw new Error(p);o=e}})},transformAttribute:u,renamedAttribute:function(t,p,{scope:o,mapValue:n}={}){u(t,{scope:o},(function(u,o){a("Attribute [%s] has been renamed to [%s] (found in %o)",t,p,u),n&&(o=e.evalOption(n,o)),u.setAttribute(p,o)}))},removedAttribute:function(e,{scope:t,replacement:p}={}){u(e,{scope:t},(function(t,u){p?a("Attribute [%s] has been removed (found in %o). Use %s instead.",e,t,p):a("Attribute [%s] has been removed without replacement (found in %o)",e,t)}))},formerlyAsync:function(e){const t=Promise.resolve(),u=t.then;return t.then=function(){return a(`${e} no longer returns a promise`),u.apply(this,arguments)},t},renamedEvent:function(e,t){p[e]=t},removedEvent:function(e,t=null){o[e]=t},fixGetStyleProps:function(t){let u;return u=e.isString(t)?s(t):e.isArray(t)?t.map(s):t,u},fixSetStyleProps:function(t,u){let p;if(e.isObject(t)){p={};for(let e in t){let o=t[e];e=s(e),o=l(e,o,u),p[e]=o}}else p=t;return p},fixEventTypes:function(t){return e.uniq(e.map(t,n))},fixKey:function(t,u,p){e.isDefined(t[u])&&(a("Property { %s } has been renamed to { %s } (found in %o)",u,p,t),e.renameKey(t,u,p))},warn:a,loaded:!0,config:t}}()},834:()=>{const e=up.util,t=up.element;up.migrate.renamedPackage("syntax","script"),up.migrate.postCompile=function(t,u){let p;if(p=u.keep){up.migrate.warn("The { keep: true } option for up.compiler() has been removed. Have the compiler set [up-keep] attribute instead.");const u=e.isString(p)?p:"";for(let e of t)e.setAttribute("up-keep",u)}},up.migrate.targetMacro=function(u,p,o){up.macro(`[${u}]`,(function(n){let r;const a=e.copy(p);(r=n.getAttribute(u))?a["up-target"]=r:a["up-follow"]="",t.setMissingAttrs(n,a),n.removeAttribute(u),null==o||o()}))},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,...u){let p=jQuery(e);return t(p,...u)}))},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,...u){let p=jQuery(e);return t(p,...u)}))},up.migrate.processCompilerPassMeta=function(e,t){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."),t)})}},838:()=>{up.migrate.renamedProperty(up.RenderResult.prototype,"options","renderOptions","up.RenderResult: Property { options } has been renamed to { renderOptions }")},947:()=>{up.migrate.renamedPackage("navigation","status"),up.migrate.renamedPackage("feedback","status"),up.status.config.patch((function(e){up.migrate.renamedProperty(e,"navs","navSelectors")}))},989:()=>{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,u){up.migrate.deprecated("up.element.toggleClass()","element.classList.toggle()");const p=e.classList;return null==u&&(u=!p.contains(t)),u?p.add(t):p.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()","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)}},992:()=>{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,u={})=>(up.migrate.deprecated("up.modal.extract(target, document)",'up.layer.open({ document, mode: "modal" })'),up.layer.open(Object.assign(Object.assign({},u),{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("[up-modal]",'[up-layer="new modal"]'))),up.migrate.targetMacro("up-drawer",{"up-layer":"new drawer"},(()=>up.migrate.deprecated("[up-drawer]",'[up-layer="new drawer"]')))},993:()=>{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,u,p){let o=jQuery(u);t.call(o,e,o,p)},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)}},997:()=>{const e=up.util;up.migrate.renamedPackage("flow","fragment"),up.migrate.renamedPackage("dom","fragment"),up.fragment.config.patch((function(e){up.migrate.renamedProperty(e,"fallbacks","mainTargets")})),up.migrate.handleResponseDocOptions=e=>up.migrate.fixKey(e,"html","document"),up.fragment.config.patch((function(e){let t=()=>up.migrate.deprecated("up.fragment.config.matchAroundOrigin","up.fragment.config.match");Object.defineProperty(e,"matchAroundOrigin",{configurable:!0,get:function(){return t(),"closest"===this.match},set:function(e){t(),this.match=e?"region":"first"}})})),up.replace=function(e,t,u){return up.migrate.deprecated("up.replace(target, url)","up.navigate(target, { url })"),up.navigate(Object.assign(Object.assign({},u),{target:e,url:t}))},up.extract=function(e,t,u){return up.migrate.deprecated("up.extract(target, document)","up.navigate(target, { document })"),up.navigate(Object.assign(Object.assign({},u),{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 u of["target","origin"])e.isJQuery(t[u])&&(up.migrate.warn("Passing a jQuery collection as { %s } is deprecated. Pass it as a native element instead.",u),t[u]=up.element.get(t[u]));"auto"===t.fail&&(up.migrate.warn("The option { fail: 'auto' } is deprecated. Omit the option instead."),delete t.fail);let u=e.pluckKey(t,"solo");e.isString(u)?(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(u,e)):e.isFunction(u)?(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(u,e)}):!0===u?(up.migrate.deprecated("Option { solo: true }","{ abort: 'all' }"),t.abort="all"):!1===u&&(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,"failOnFinished","onFailFinished"),up.migrate.fixKey(t,"badResponseTime","lateDelay"),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: 'top' }"),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),"reset"===t.scroll&&(up.migrate.deprecated("Option { scroll: 'reset'' }","{ scroll: 'top' }"),t.scroll="top")},up.migrate.postprocessReloadOptions=function(e){var t;let u,p=null===(t=e.headers)||void 0===t?void 0:t["If-Modified-Since"];u=p?Math.floor(.001*new Date(p)).toString():"0",e.headers[up.protocol.headerize("reloadFromTime")]=u},up.migrate.resolveOrigin=function(e,{origin:t}={}){return e.replace(/"[^"]*"|'[^']*'|&|:origin\b/g,(function(u){return":origin"!==u&&"&"!==u?u:("&"===u&&up.migrate.deprecated("Origin shorthand '&'",":origin"),t?up.fragment.toTarget(t):void up.fail('Missing { origin } element to resolve "%s" reference (found in %s)',u,e))}))},up.migrate.removedEvent("up:fragment:kept","up:fragment:keep"),up.fragment.config.patch((function(){this.runScriptsValue=this.runScripts,this.runScriptsSet=!1,Object.defineProperty(this,"runScripts",{configurable:!0,get(){return this.runScriptsValue},set(e){this.runScriptsValue=e,this.runScriptsSet=!0}})})),up.on("up:framework:boot",(function(){up.fragment.config.runScriptsSet||up.migrate.warn("Scripts within fragments are no longer executed. Configure up.fragment.config.runScripts to remove this warning.")})),up.compiler("[up-keep]",(function(t){let u=up.element.booleanOrStringAttr(t,"up-keep");e.isString(u)&&/[.[#]/.test(u)&&(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(u)})) event.preventDefault()`),t.setAttribute("up-keep",""))}))}},t={};function u(p){var o=t[p];if(void 0!==o)return o.exports;var n=t[p]={exports:{}};return e[p](n,n.exports,u),n.exports}up.framework.startExtension(),u(832),u(750),u(204),u(838),u(89),u(635),u(33),u(989),u(993),u(834),u(267),u(997),u(753),u(789),u(947),u(429),u(516),u(992),u(67),u(154),u(269),u(391),u(162),u(763),up.framework.stopExtension()})();
1
+ (()=>{var e={33:()=>{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)}},67:()=>{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"]')))},89:()=>{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 u=0;u<e;u++)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)},up.util.microtask=window.queueMicrotask,up.migrate.splitAtOr=function(e){let t=e.split(/\s+or\s+/);if(t.length>=2)return up.migrate.warn(`Separating tokens by \`or\` has been deprecated. Use a comma (\`,\`) instead. Found in "${e}".`),t}},154:()=>{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"))}))},162:()=>{const e=up.element;let t;up.radio.config.patch((function(e){up.migrate.renamedProperty(e,"hungry","hungrySelectors")})),up.radio.config.pollEnabled=!0,up.radio.config.patch((function(e){t=up.migrate.removedProperty(e,"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){t[0]||e.preventDefault()})),up.compiler("[up-hungry][up-if-history]",(function(t){e.booleanAttr(t,"up-if-history")&&t.addEventListener("up:fragment:hungry",(function(e){e.renderOptions.history||e.preventDefault()}))}))},204:()=>{up.migrate.renamedProperty(up.RenderJob.prototype,"options","renderOptions","up.RenderJob: Property { options } has been renamed to { renderOptions }")},267:()=>{up.form.config.patch((function(e){up.migrate.renamedProperty(e,"fields","fieldSelectors"),up.migrate.renamedProperty(e,"submitButtons","submitButtonSelectors"),up.migrate.renamedProperty(e,"validateTargets","groupSelectors"),up.migrate.renamedProperty(e,"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.watchForSwitch=function(e,t){if(e.matches("input[type=radio]"))return up.migrate.warn("Using [up-switch] on an individual radio button is deprecated (%o). Use [up-switch] on the container of a radio group instead.",e),up.on(e,"change",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 u=up.util.map(t,(t=>up.watch(t,...e)));return up.util.sequence(u)}return up.watch(...e)}},269:()=>{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]&&"'"!==t[0])return up.migrate.warn("X-Up-Title must now be a JSON-encoded string"),t}}},391:()=>{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"),up.network.config.patch((function(e){const t=()=>up.migrate.deprecated("up.proxy.config.preloadDelay","up.link.config.preloadDelay");Object.defineProperty(e,"preloadDelay",{configurable:!0,get:()=>(t(),up.link.config.preloadDelay),set(e){t(),up.link.config.preloadDelay=e}})})),up.network.config.patch((function(e){up.migrate.renamedProperty(e,"maxRequests","concurrency"),up.migrate.renamedProperty(e,"slowDelay","lateDelay"),up.migrate.renamedProperty(e,"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(e,"clearCache","expireCache"),up.migrate.forbiddenPropertyValue(e,"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(e,"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.on("up:request:loaded",(function(e){"false"===e.response.headers["X-Up-Expire-Cache"]&&up.migrate.warn("The server can no longer override an { expireCache } option using an `X-Up-Expire-Cache: false` response header"),"false"===e.response.headers["X-Up-Evict-Cache"]&&up.migrate.warn("The server can no longer override an { evictCache } option using an `X-Up-Evict-Cache: false` response header")})),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.migrate.renamedProperty(up.Request.prototype,"badResponseTime","lateDelay"),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;up.network.config.patch((function(u){u.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):t}})),up.network.shouldReduceRequests=function(){return up.migrate("up.network.shouldReduceRequests() has been removed without replacement"),!1},up.network.config.patch((function(e){up.migrate.removedProperty(e,"badRTT"),up.migrate.removedProperty(e,"badDownlink"),up.migrate.renamedProperty(e,"badResponseTime","lateDelay")}))},429:()=>{const e=up.link.config.selectorFn("followSelectors"),t=up.link.config.selectorFn("preloadSelectors");let u;up.migrate.renamedAttribute("up-flavor","up-mode",{scope:e}),up.migrate.renamedAttribute("up-closable","up-dismissable",{scope:e}),up.migrate.removedAttribute("up-width",{scope:e,replacement:"[up-size] or [up-class]"}),up.migrate.removedAttribute("up-height",{scope:e,replacement:"[up-size] or [up-class]"}),up.migrate.renamedAttribute("up-history-visible","up-history",{scope:e}),up.migrate.renamedAttribute("up-clear-cache","up-expire-cache",{scope:e}),up.migrate.renamedAttribute("up-bad-response-time","up-late-delay"),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="top"]'),e.setAttribute("up-scroll","top");break;case"true":up.migrate.warn('Attribute [up-reset-scroll="true"] has been replaced with [up-scroll="top"]'),e.setAttribute("up-scroll","top");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("[up-dash]","up.link.config.instantSelectors and up.link.config.preloadSelectors"))),up.migrate.renamedAttribute("up-delay","up-preload-delay",{scope:t}),up.link.config.patch((function(e){e.preloadEnabled=!0,u=up.migrate.removedProperty(e,"preloadEnabled","The configuration up.link.config.preloadEnabled has been removed. To disable preloading, prevent up:link:preload instead.")})),up.on("up:link:preload",(function(e){u[0]||e.preventDefault()}));const p="[up-href]:not([up-follow], [up-poll], [up-defer], [up-expand])";up.link.config.patch((function(e){e.clickableSelectors.push(p),e.followSelectors.push(p)})),up.compiler(p,(function(e){up.migrate.warn("Following links with only [up-href] has been deprecated. You must now also set an [up-follow] on the same link (found in %o).",e)}));const n=`[up-instant]:is(a[href], ${p})`;up.link.config.patch((function(e){e.followSelectors.push(n)})),up.compiler(p,(function(e){up.migrate.warn("Following links with only [up-instant] has been deprecated. You must now also set an [up-follow] on the same link (found in %o).",e)}))},516:()=>{up.migrate.handleLayerOptions=function(e){up.migrate.fixKey(e,"flavor","mode"),up.migrate.fixKey(e,"closable","dismissable"),up.migrate.fixKey(e,"closeLabel","dismissLabel"),up.migrate.fixKey(e,"dismissAriaLabel","dismissARIALabel");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.util.isMissing(e.layer)&&up.util.isGiven(e.mode)&&(up.migrate.warn('Opening a layer with only a { mode } option is deprecated. Pass { layer: "new", mode } instead.'),e.layer="new")},up.migrate.handleTetherOptions=function(e){const[t,u]=e.position.split("-");u&&(up.migrate.warn("The position value %o is deprecated. Use %o instead.",e.position,{position:t,align:u}),e.position=t,e.align=u)},up.migrate.registerLayerCloser=e=>e.registerAttrCloser("up-close",((t,u)=>{up.migrate.deprecated("[up-close]","[up-dismiss]"),e.dismiss(t,u)})),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}})},635:()=>{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}})},750:()=>{up.Config.prototype.patch=function(e){let t=e.bind(this,this);t(),document.addEventListener("up:framework:reset",t)}},753:()=>{up.migrate.renamedEvent("up:app:booted","up:framework:booted"),document.querySelector("script[up-boot=manual]")&&up.migrate.warn('The [up-boot="manual"] attribute must be set on the <html> element')},763:()=>{up.migrate.renamedPackage("layout","viewport"),up.viewport.config.patch((function(e){up.migrate.renamedProperty(e,"viewports","viewportSelectors"),up.migrate.renamedProperty(e,"fixedTop","fixedTopSelectors"),up.migrate.renamedProperty(e,"fixedBottom","fixedBottomSelectors"),up.migrate.renamedProperty(e,"anchoredRight","anchoredRightSelectors"),up.migrate.renamedProperty(e,"snap","revealSnap"),up.migrate.removedProperty(e,"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,u={}){return up.migrate.deprecated("up.scroll()","Element#scrollTo()"),(e=up.fragment.get(e,u)).scrollTo(Object.assign(Object.assign({},u),{top:t})),up.migrate.formerlyAsync("up.scroll()")},up.scroll=up.viewport.scroll},789:()=>{up.history.config.patch((function(e){up.migrate.renamedProperty(e,"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.prepareLocationChangedEvent=function(e){up.migrate.renamedProperty(e,"url","location")},up.history.config.patch((function(){this.updateMetaTagsValue=this.updateMetaTags,this.updateMetaTagsSet=!1,Object.defineProperty(this,"updateMetaTags",{configurable:!0,get(){return this.updateMetaTagsValue},set(e){this.updateMetaTagsValue=e,this.updateMetaTagsSet=!0}})})),up.on("up:framework:boot",(function(){up.history.config.updateMetaTagsSet||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 t=up.radio.config.selector("hungrySelectors"),u=up.util.filter(e,(e=>e.matches(t)));u.length&&up.migrate.warn("Meta tags in the <head> are now updated automatically. Remove the [up-hungry] attribute from %o.",u)}},832:()=>{const e=up.util;up.migrate=function(){const t=new up.Config((()=>({logLevel:"warn"})));function u(t,...u){let p=e.extractCallback(u),{scope:n}=e.extractOptions(u),o=n||`[${t}]`;up.macro(o,{priority:-1e3},(function(e){if(e.hasAttribute(t)){let u=e.getAttribute(t);p(e,u)}}))}const p={},n={};function o(e){let t=p[e];if(t)return a(`Event ${e} has been renamed to ${t}`),t;if(e in n){let t=`Event ${e} has been removed`,u=n[e];return u&&(t+=`. Use ${u} instead.`),a(t),e}return e}let r={};const a=up.mockable(((u,...p)=>{const n=e.sprintf(u,...p),o=t.logLevel;"none"===o||r[n]||(r[n]=!0,up.log[o]("unpoly-migrate",u,...p))})),i=["top","right","bottom","left","padding","padding-top","padding-right","padding-bottom","padding-left","margin","margin-top","margin-right","margin-bottom","margin-left","border-width","border-top-width","border-right-width","border-bottom-width","border-left-width","width","height","max-width","max-height","min-width","min-height"];function s(t){return/[A-Z]/.test(t)?(a(`CSS property names must be in kebab-case, but got camelCase "${t}"`),e.camelToKebabCase(t)):t}function l(e,t,u){return!u&&i.includes(e)&&/^[\d.]+$/.test(t)?(a(`CSS length values must have a unit, but got "${e}: ${t}". Use "${e}: ${t}px" instead.`),t+"px"):t}return up.on("up:framework:reset",(function(){r={}})),{deprecated:function(e,t){a(`${e} has been deprecated. Use ${t} instead.`)},renamedPackage:function(e,t){Object.defineProperty(up,e,{configurable:!0,get:()=>(a(`up.${e} has been renamed to up.${t}`),up[t])})},renamedProperty:function(t,u,p,n){const o=e.memoize((()=>n?a(n):a("Property { %s } has been renamed to { %s } (found in %o)",u,p,t)));Object.defineProperty(t,u,{configurable:!0,get(){return o(),this[p]},set(e){o(),this[p]=e}})},removedProperty:function(t,u,p){const n=e.memoize((()=>p?a(p):a("Property { %s } has been removed without replacement (found in %o)",u,t)));let o=[t[u]];return Object.defineProperty(t,u,{configurable:!0,get:()=>(n(),o[0]),set(e){n(),o[0]=e}}),o},defineThrowingProps:function(e,t,u){let p=()=>{throw new TypeError(u)};for(const u of Object.getOwnPropertyNames(t))u in e||Object.defineProperty(e,u,{get:p,set:p,enumerable:!1,configurable:!1})},forbiddenPropertyValue:function(e,t,u,p){let n=e[t];Object.defineProperty(e,t,{configurable:!0,get:()=>n,set(e){if(e===u)throw new Error(p);n=e}})},transformAttribute:u,renamedAttribute:function(t,p,{scope:n,mapValue:o}={}){u(t,{scope:n},(function(u,n){a("Attribute [%s] has been renamed to [%s] (found in %o)",t,p,u),o&&(n=e.evalOption(o,n)),u.setAttribute(p,n)}))},removedAttribute:function(e,{scope:t,replacement:p}={}){u(e,{scope:t},(function(t,u){p?a("Attribute [%s] has been removed (found in %o). Use %s instead.",e,t,p):a("Attribute [%s] has been removed without replacement (found in %o)",e,t)}))},formerlyAsync:function(e){const t=Promise.resolve(),u=t.then;return t.then=function(){return a(`${e} is now sync and no longer returns a promise`),u.apply(this,arguments)},t},renamedEvent:function(e,t){p[e]=t},removedEvent:function(e,t=null){n[e]=t},fixGetStyleProps:function(t){let u;return u=e.isString(t)?s(t):e.isArray(t)?t.map(s):t,u},fixSetStyleProps:function(t,u){let p;if(e.isObject(t)){p={};for(let e in t){let n=t[e];e=s(e),n=l(e,n,u),p[e]=n}}else p=t;return p},fixEventTypes:function(t){return e.uniq(e.map(t,o))},fixKey:function(t,u,p){e.isDefined(t[u])&&(a("Property { %s } has been renamed to { %s } (found in %o)",u,p,t),e.renameKey(t,u,p))},warn:a,loaded:!0,config:t}}()},834:()=>{const e=up.util,t=up.element;up.migrate.renamedPackage("syntax","script"),up.migrate.postCompile=function(t,u){let p;if(p=u.keep){up.migrate.warn("The { keep: true } option for up.compiler() has been removed. Have the compiler set [up-keep] attribute instead.");const u=e.isString(p)?p:"";for(let e of t)e.setAttribute("up-keep",u)}},up.migrate.targetMacro=function(u,p,n){up.macro(`[${u}]`,(function(o){let r;const a=e.copy(p);(r=o.getAttribute(u))?a["up-target"]=r:a["up-follow"]="",t.setMissingAttrs(o,a),o.removeAttribute(u),null==n||n()}))},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,...u){let p=jQuery(e);return t(p,...u)}))},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,...u){let p=jQuery(e);return t(p,...u)}))},up.migrate.processCompilerPassMeta=function(e,t){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."),t)})};let u=up.hello,p="up.hello() is now async and returns a promise";class WasElementIsPromise extends Promise{}up.migrate.defineThrowingProps(WasElementIsPromise.prototype,Element.prototype,p),up.migrate.defineThrowingProps(WasElementIsPromise.prototype,Node.prototype,p),up.migrate.defineThrowingProps(WasElementIsPromise.prototype,EventTarget.prototype,p),up.hello=function(e,...t){let p=u(e,...t);return WasElementIsPromise.resolve(p)}},838:()=>{up.migrate.renamedProperty(up.RenderResult.prototype,"options","renderOptions","up.RenderResult: Property { options } has been renamed to { renderOptions }")},947:()=>{up.migrate.renamedPackage("navigation","status"),up.migrate.renamedPackage("feedback","status"),up.status.config.patch((function(e){up.migrate.renamedProperty(e,"navs","navSelectors")}))},959:()=>{up.Layer.prototype.isOpen=function(){return up.migrate.deprecated("up.Layer#isOpen()","up.Layer#isAlive()"),this.isAlive()},up.Layer.prototype.isClosed=function(){return up.migrate.deprecated("up.Layer#isClosed()","!up.Layer#isAlive()"),!this.isAlive()}},989:()=>{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,u){up.migrate.deprecated("up.element.toggleClass()","element.classList.toggle()");const p=e.classList;return null==u&&(u=!p.contains(t)),u?p.add(t):p.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()","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)}},992:()=>{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,u={})=>(up.migrate.deprecated("up.modal.extract(target, document)",'up.layer.open({ document, mode: "modal" })'),up.layer.open(Object.assign(Object.assign({},u),{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("[up-modal]",'[up-layer="new modal"]'))),up.migrate.targetMacro("up-drawer",{"up-layer":"new drawer"},(()=>up.migrate.deprecated("[up-drawer]",'[up-layer="new drawer"]')))},993:()=>{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,u,p){let n=jQuery(u);t.call(n,e,n,p)},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)}},997:()=>{const e=up.util;up.migrate.renamedPackage("flow","fragment"),up.migrate.renamedPackage("dom","fragment"),up.fragment.config.patch((function(e){up.migrate.renamedProperty(e,"fallbacks","mainTargets")})),up.migrate.handleResponseDocOptions=e=>up.migrate.fixKey(e,"html","document"),up.fragment.config.patch((function(e){let t=()=>up.migrate.deprecated("up.fragment.config.matchAroundOrigin","up.fragment.config.match");Object.defineProperty(e,"matchAroundOrigin",{configurable:!0,get:function(){return t(),"closest"===this.match},set:function(e){t(),this.match=e?"region":"first"}})})),up.replace=function(e,t,u){return up.migrate.deprecated("up.replace(target, url)","up.navigate(target, { url })"),up.navigate(Object.assign(Object.assign({},u),{target:e,url:t}))},up.extract=function(e,t,u){return up.migrate.deprecated("up.extract(target, document)","up.navigate(target, { document })"),up.navigate(Object.assign(Object.assign({},u),{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 u of["target","origin"])e.isJQuery(t[u])&&(up.migrate.warn("Passing a jQuery collection as { %s } is deprecated. Pass it as a native element instead.",u),t[u]=up.element.get(t[u]));"auto"===t.fail&&(up.migrate.warn("The option { fail: 'auto' } is deprecated. Omit the option instead."),delete t.fail);let u=e.pluckKey(t,"solo");e.isString(u)?(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(u,e)):e.isFunction(u)?(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(u,e)}):!0===u?(up.migrate.deprecated("Option { solo: true }","{ abort: 'all' }"),t.abort="all"):!1===u&&(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,"failOnFinished","onFailFinished"),up.migrate.fixKey(t,"badResponseTime","lateDelay"),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: 'top' }"),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),"reset"===t.scroll&&(up.migrate.deprecated("Option { scroll: 'reset'' }","{ scroll: 'top' }"),t.scroll="top")},up.migrate.postprocessReloadOptions=function(e){var t;let u,p=null===(t=e.headers)||void 0===t?void 0:t["If-Modified-Since"];u=p?Math.floor(.001*new Date(p)).toString():"0",e.headers[up.protocol.headerize("reloadFromTime")]=u},up.migrate.resolveOrigin=function(e,{origin:t}={}){return e.replace(/"[^"]*"|'[^']*'|&|:origin\b/g,(function(u){return":origin"!==u&&"&"!==u?u:("&"===u&&up.migrate.deprecated("Origin shorthand '&'",":origin"),t?up.fragment.toTarget(t):void up.fail('Missing { origin } element to resolve "%s" reference (found in %s)',u,e))}))},up.fragment.config.patch((function(){this.runScriptsValue=this.runScripts,this.runScriptsSet=!1,Object.defineProperty(this,"runScripts",{configurable:!0,get(){return this.runScriptsValue},set(e){this.runScriptsValue=e,this.runScriptsSet=!0}})})),up.on("up:framework:boot",(function(){up.fragment.config.runScriptsSet||up.migrate.warn("Scripts within fragments are no longer executed. Configure up.fragment.config.runScripts to remove this warning.")})),up.compiler("[up-keep]",(function(t){let u=up.element.booleanOrStringAttr(t,"up-keep");e.isString(u)&&/[.[#]/.test(u)&&(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(u)})) event.preventDefault()`),t.setAttribute("up-keep",""))}))}},t={};function u(p){var n=t[p];if(void 0!==n)return n.exports;var o=t[p]={exports:{}};return e[p](o,o.exports,u),o.exports}up.framework.startExtension(),u(832),u(750),u(204),u(838),u(959),u(89),u(635),u(33),u(989),u(993),u(834),u(267),u(997),u(753),u(789),u(947),u(429),u(516),u(992),u(67),u(154),u(269),u(391),u(162),u(763),up.framework.stopExtension()})();