ember-source 3.24.0 → 3.24.4

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.
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 3.24.0
9
+ * @version 3.24.4
10
10
  */
11
11
  /*globals process */
12
12
  var define, require, Ember; // Used in @ember/-internals/environment/lib/global.js
@@ -4355,7 +4355,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim
4355
4355
  init() {
4356
4356
  this._super(...arguments);
4357
4357
 
4358
- (true && !(!this._isEngine || this._engineMountPoint !== undefined) && (0, _debug.assert)('You attempted to use the <LinkTo> component within a routeless engine, this is not supported. ' + 'If you are using the ember-engines addon, use the <LinkToExternal> component instead. ' + 'See https://ember-engines.com/docs/links for more info.', !this._isEngine || this._engineMountPoint !== undefined)); // Map desired event name to invoke function
4358
+ this.assertLinkToOrigin(); // Map desired event name to invoke function
4359
4359
 
4360
4360
  var {
4361
4361
  eventName
@@ -4377,7 +4377,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim
4377
4377
  var {
4378
4378
  route
4379
4379
  } = this;
4380
- return this._namespaceRoute(route === UNDEFINED ? this._currentRoute : route);
4380
+ return route === UNDEFINED ? this._currentRoute : this._namespaceRoute(route);
4381
4381
  }),
4382
4382
  _models: (0, _metal.computed)('model', 'models', function computeLinkToComponentModels() {
4383
4383
  var {
@@ -4467,6 +4467,10 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim
4467
4467
  return this._isActive(target);
4468
4468
  }),
4469
4469
 
4470
+ assertLinkToOrigin() {
4471
+ (true && !(!this._isEngine || this._engineMountPoint !== undefined) && (0, _debug.assert)('You attempted to use the <LinkTo> component within a routeless engine, this is not supported. ' + 'If you are using the ember-engines addon, use the <LinkToExternal> component instead. ' + 'See https://ember-engines.com/docs/links for more info.', !this._isEngine || this._engineMountPoint !== undefined));
4472
+ },
4473
+
4470
4474
  _isActive(routerState) {
4471
4475
  if (this.loading) {
4472
4476
  return false;
@@ -18468,7 +18472,7 @@ define("@ember/-internals/routing/lib/services/router", ["exports", "@ember/-int
18468
18472
  currentRoute: (0, _computed.readOnly)('_router.currentRoute')
18469
18473
  });
18470
18474
  });
18471
- define("@ember/-internals/routing/lib/services/routing", ["exports", "@ember/object/computed", "@ember/polyfills", "@ember/service"], function (_exports, _computed, _polyfills, _service) {
18475
+ define("@ember/-internals/routing/lib/services/routing", ["exports", "@ember/-internals/owner", "@ember/-internals/utils", "@ember/object/computed", "@ember/polyfills", "@ember/service"], function (_exports, _owner, _utils, _computed, _polyfills, _service) {
18472
18476
  "use strict";
18473
18477
 
18474
18478
  Object.defineProperty(_exports, "__esModule", {
@@ -18479,7 +18483,7 @@ define("@ember/-internals/routing/lib/services/routing", ["exports", "@ember/obj
18479
18483
  /**
18480
18484
  @module ember
18481
18485
  */
18482
-
18486
+ var ROUTER = (0, _utils.symbol)('ROUTER');
18483
18487
  /**
18484
18488
  The Routing service is used by LinkComponent, and provides facilities for
18485
18489
  the component/view layer to interact with the router.
@@ -18490,7 +18494,21 @@ define("@ember/-internals/routing/lib/services/routing", ["exports", "@ember/obj
18490
18494
  @private
18491
18495
  @class RoutingService
18492
18496
  */
18497
+
18493
18498
  class RoutingService extends _service.default {
18499
+ get router() {
18500
+ var router = this[ROUTER];
18501
+
18502
+ if (router !== undefined) {
18503
+ return router;
18504
+ }
18505
+
18506
+ var owner = (0, _owner.getOwner)(this);
18507
+ router = owner.lookup('router:main');
18508
+ router.setupRouter();
18509
+ return this[ROUTER] = router;
18510
+ }
18511
+
18494
18512
  hasRoute(routeName) {
18495
18513
  return this.router.hasRoute(routeName);
18496
18514
  }
@@ -18509,13 +18527,7 @@ define("@ember/-internals/routing/lib/services/routing", ["exports", "@ember/obj
18509
18527
  this.router._prepareQueryParams(routeName, models, queryParams);
18510
18528
  }
18511
18529
 
18512
- generateURL(routeName, models, queryParams) {
18513
- var router = this.router; // return early when the router microlib is not present, which is the case for {{link-to}} in integration tests
18514
-
18515
- if (!router._routerMicrolib) {
18516
- return;
18517
- }
18518
-
18530
+ _generateURL(routeName, models, queryParams) {
18519
18531
  var visibleQueryParams = {};
18520
18532
 
18521
18533
  if (queryParams) {
@@ -18523,11 +18535,25 @@ define("@ember/-internals/routing/lib/services/routing", ["exports", "@ember/obj
18523
18535
  this.normalizeQueryParams(routeName, models, visibleQueryParams);
18524
18536
  }
18525
18537
 
18526
- return router.generate(routeName, ...models, {
18538
+ return this.router.generate(routeName, ...models, {
18527
18539
  queryParams: visibleQueryParams
18528
18540
  });
18529
18541
  }
18530
18542
 
18543
+ generateURL(routeName, models, queryParams) {
18544
+ if (this.router._initialTransitionStarted) {
18545
+ return this._generateURL(routeName, models, queryParams);
18546
+ } else {
18547
+ // Swallow error when transition has not started.
18548
+ // When rendering in tests without visit(), we cannot infer the route context which <LinkTo/> needs be aware of
18549
+ try {
18550
+ return this._generateURL(routeName, models, queryParams);
18551
+ } catch (_e) {
18552
+ return;
18553
+ }
18554
+ }
18555
+ }
18556
+
18531
18557
  isActiveForRoute(contexts, queryParams, routeName, routerState) {
18532
18558
  var handlers = this.router._routerMicrolib.recognizer.handlersFor(routeName);
18533
18559
 
@@ -21598,6 +21624,7 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter
21598
21624
  constructor() {
21599
21625
  super(...arguments);
21600
21626
  this._didSetupRouter = false;
21627
+ this._initialTransitionStarted = false;
21601
21628
  this.currentURL = null;
21602
21629
  this.currentRouteName = null;
21603
21630
  this.currentPath = null;
@@ -21726,7 +21753,13 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter
21726
21753
  }
21727
21754
 
21728
21755
  routeWillChange(transition) {
21729
- router.trigger('routeWillChange', transition);
21756
+ router.trigger('routeWillChange', transition); // in case of intermediate transition we update the current route
21757
+ // to make router.currentRoute.name consistent with router.currentRouteName
21758
+ // see https://github.com/emberjs/ember.js/issues/19449
21759
+
21760
+ if (transition.isIntermediate) {
21761
+ router.set('currentRoute', transition.to);
21762
+ }
21730
21763
  }
21731
21764
 
21732
21765
  routeDidChange(transition) {
@@ -21973,6 +22006,8 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter
21973
22006
  }
21974
22007
 
21975
22008
  _doURLTransition(routerJsMethod, url) {
22009
+ this._initialTransitionStarted = true;
22010
+
21976
22011
  var transition = this._routerMicrolib[routerJsMethod](url || '/');
21977
22012
 
21978
22013
  didBeginTransition(transition, this);
@@ -22090,6 +22125,7 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter
22090
22125
 
22091
22126
  reset() {
22092
22127
  this._didSetupRouter = false;
22128
+ this._initialTransitionStarted = false;
22093
22129
 
22094
22130
  if (this._routerMicrolib) {
22095
22131
  this._routerMicrolib.reset();
@@ -22299,6 +22335,7 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter
22299
22335
  var targetRouteName = _targetRouteName || (0, _utils.getActiveTargetName)(this._routerMicrolib);
22300
22336
 
22301
22337
  (true && !(Boolean(targetRouteName) && this._routerMicrolib.hasRoute(targetRouteName)) && (0, _debug.assert)(`The route ${targetRouteName} was not found`, Boolean(targetRouteName) && this._routerMicrolib.hasRoute(targetRouteName)));
22338
+ this._initialTransitionStarted = true;
22302
22339
  var queryParams = {};
22303
22340
 
22304
22341
  this._processActiveTransitionQueryParams(targetRouteName, models, queryParams, _queryParams);
@@ -36727,9 +36764,7 @@ define("@ember/engine/index", ["exports", "@ember/engine/lib/engine-parent", "@e
36727
36764
  registry.injection('route', '_bucketCache', (0, _container.privatize)`-bucket-cache:main`);
36728
36765
  registry.injection('route', '_router', 'router:main'); // Register the routing service...
36729
36766
 
36730
- registry.register('service:-routing', _routing.RoutingService); // Then inject the app router into it
36731
-
36732
- registry.injection('service:-routing', 'router', 'router:main'); // DEBUGGING
36767
+ registry.register('service:-routing', _routing.RoutingService); // DEBUGGING
36733
36768
 
36734
36769
  registry.register('resolver-for-debugging:main', registry.resolver, {
36735
36770
  instantiate: false
@@ -49403,31 +49438,29 @@ define("@glimmer/runtime", ["exports", "@glimmer/util", "@glimmer/global-context
49403
49438
  var attribute = vm.elements().setDynamicAttribute(name, value, !!trusting, namespace);
49404
49439
 
49405
49440
  if (!(0, _reference.isConstRef)(reference)) {
49406
- vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute));
49441
+ vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env));
49407
49442
  }
49408
49443
  });
49409
49444
 
49410
49445
  class UpdateDynamicAttributeOpcode extends UpdatingOpcode {
49411
- constructor(reference, attribute) {
49446
+ constructor(reference, attribute, env) {
49412
49447
  super();
49413
- this.reference = reference;
49414
- this.attribute = attribute;
49415
49448
  this.type = 'patch-element';
49416
- this.lastValue = (0, _reference.valueForRef)(reference);
49417
- }
49449
+ var initialized = false;
49450
+ this.updateRef = (0, _reference.createComputeRef)(() => {
49451
+ var value = (0, _reference.valueForRef)(reference);
49418
49452
 
49419
- evaluate(vm) {
49420
- var {
49421
- attribute,
49422
- reference,
49423
- lastValue
49424
- } = this;
49425
- var currentValue = (0, _reference.valueForRef)(reference);
49453
+ if (initialized === true) {
49454
+ attribute.update(value, env);
49455
+ } else {
49456
+ initialized = true;
49457
+ }
49458
+ });
49459
+ (0, _reference.valueForRef)(this.updateRef);
49460
+ }
49426
49461
 
49427
- if (currentValue !== lastValue) {
49428
- attribute.update(currentValue, vm.env);
49429
- this.lastValue = currentValue;
49430
- }
49462
+ evaluate() {
49463
+ (0, _reference.valueForRef)(this.updateRef);
49431
49464
  }
49432
49465
 
49433
49466
  }
@@ -49883,7 +49916,7 @@ define("@glimmer/runtime", ["exports", "@glimmer/util", "@glimmer/global-context
49883
49916
  var attribute = vm.elements().setDynamicAttribute(name, (0, _reference.valueForRef)(value), trusting, namespace);
49884
49917
 
49885
49918
  if (!(0, _reference.isConstRef)(value)) {
49886
- vm.updateWith(new UpdateDynamicAttributeOpcode(value, attribute));
49919
+ vm.updateWith(new UpdateDynamicAttributeOpcode(value, attribute, vm.env));
49887
49920
  }
49888
49921
  }
49889
49922
  }
@@ -59685,7 +59718,7 @@ define("ember/version", ["exports"], function (_exports) {
59685
59718
  value: true
59686
59719
  });
59687
59720
  _exports.default = void 0;
59688
- var _default = "3.24.0";
59721
+ var _default = "3.24.4";
59689
59722
  _exports.default = _default;
59690
59723
  });
59691
59724
  define("node-module/index", ["exports"], function (_exports) {
@@ -60623,24 +60656,26 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
60623
60656
  _exports.logAbort = logAbort;
60624
60657
  _exports.InternalRouteInfo = _exports.TransitionError = _exports.TransitionState = _exports.QUERY_PARAMS_SYMBOL = _exports.PARAMS_SYMBOL = _exports.STATE_SYMBOL = _exports.InternalTransition = _exports.default = void 0;
60625
60658
 
60626
- var TransitionAbortedError = function () {
60627
- TransitionAbortedError.prototype = Object.create(Error.prototype);
60628
- TransitionAbortedError.prototype.constructor = TransitionAbortedError;
60659
+ function buildTransitionAborted() {
60660
+ var error = new Error('TransitionAborted');
60661
+ error.name = 'TransitionAborted';
60662
+ error.code = 'TRANSITION_ABORTED';
60663
+ return error;
60664
+ }
60629
60665
 
60630
- function TransitionAbortedError(message) {
60631
- var error = Error.call(this, message);
60632
- this.name = 'TransitionAborted';
60633
- this.message = message || 'TransitionAborted';
60666
+ function isTransitionAborted(maybeError) {
60667
+ return typeof maybeError === 'object' && maybeError !== null && maybeError.code === 'TRANSITION_ABORTED';
60668
+ }
60634
60669
 
60635
- if (Error.captureStackTrace) {
60636
- Error.captureStackTrace(this, TransitionAbortedError);
60637
- } else {
60638
- this.stack = error.stack;
60639
- }
60640
- }
60670
+ function isAbortable(maybeAbortable) {
60671
+ return typeof maybeAbortable === 'object' && maybeAbortable !== null && typeof maybeAbortable.isAborted === 'boolean';
60672
+ }
60641
60673
 
60642
- return TransitionAbortedError;
60643
- }();
60674
+ function throwIfAborted(maybe) {
60675
+ if (isAbortable(maybe) && maybe.isAborted) {
60676
+ throw buildTransitionAborted();
60677
+ }
60678
+ }
60644
60679
 
60645
60680
  var slice = Array.prototype.slice;
60646
60681
  var hasOwnProperty = Object.prototype.hasOwnProperty;
@@ -60798,7 +60833,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
60798
60833
  _exports.PARAMS_SYMBOL = PARAMS_SYMBOL;
60799
60834
  var QUERY_PARAMS_SYMBOL = `__QPS__-2619863929824844-32323`;
60800
60835
  /**
60801
- A Transition is a thennable (a promise-like object) that represents
60836
+ A Transition is a thenable (a promise-like object) that represents
60802
60837
  an attempt to transition to another route. It can be aborted, either
60803
60838
  explicitly via `abort` or by attempting another transition while a
60804
60839
  previous one is still underway. An aborted transition can also
@@ -60829,6 +60864,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
60829
60864
  this.isCausedByInitialTransition = false;
60830
60865
  this.isCausedByAbortingReplaceTransition = false;
60831
60866
  this._visibleQueryParams = {};
60867
+ this.isIntermediate = false;
60832
60868
  this[STATE_SYMBOL] = state || router.state;
60833
60869
  this.intent = intent;
60834
60870
  this.router = router;
@@ -60892,14 +60928,9 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
60892
60928
  }
60893
60929
 
60894
60930
  this.sequence = router.currentSequence++;
60895
- this.promise = state.resolve(() => {
60896
- if (this.isAborted) {
60897
- return _rsvp.Promise.reject(false, promiseLabel('Transition aborted - reject'));
60898
- }
60899
-
60900
- return _rsvp.Promise.resolve(true);
60901
- }, this).catch(result => {
60902
- return _rsvp.Promise.reject(this.router.transitionDidError(result, this));
60931
+ this.promise = state.resolve(this).catch(result => {
60932
+ var error = this.router.transitionDidError(result, this);
60933
+ throw error;
60903
60934
  }, promiseLabel('Handle Abort'));
60904
60935
  } else {
60905
60936
  this.promise = _rsvp.Promise.resolve(this[STATE_SYMBOL]);
@@ -60933,7 +60964,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
60933
60964
  A standard promise hook that resolves if the transition
60934
60965
  succeeds and rejects if it fails/redirects/aborts.
60935
60966
  Forwards to the internal `promise` property which you can
60936
- use in situations where you want to pass around a thennable,
60967
+ use in situations where you want to pass around a thenable,
60937
60968
  but not the Transition itself.
60938
60969
  @method then
60939
60970
  @param {Function} onFulfilled
@@ -60966,7 +60997,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
60966
60997
  }
60967
60998
  /**
60968
60999
  Forwards to the internal `promise` property which you can
60969
- use in situations where you want to pass around a thennable,
61000
+ use in situations where you want to pass around a thenable,
60970
61001
  but not the Transition itself.
60971
61002
  @method finally
60972
61003
  @param {Function} callback
@@ -61151,7 +61182,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61151
61182
 
61152
61183
  function logAbort(transition) {
61153
61184
  log(transition.router, transition.sequence, 'detected abort.');
61154
- return new TransitionAbortedError();
61185
+ return buildTransitionAborted();
61155
61186
  }
61156
61187
 
61157
61188
  function isTransition(obj) {
@@ -61324,8 +61355,14 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61324
61355
  return this.params || {};
61325
61356
  }
61326
61357
 
61327
- resolve(shouldContinue, transition) {
61328
- return _rsvp.Promise.resolve(this.routePromise).then(route => this.checkForAbort(shouldContinue, route)).then(() => this.runBeforeModelHook(transition)).then(() => this.checkForAbort(shouldContinue, null)).then(() => this.getModel(transition)).then(resolvedModel => this.checkForAbort(shouldContinue, resolvedModel)).then(resolvedModel => this.runAfterModelHook(transition, resolvedModel)).then(resolvedModel => this.becomeResolved(transition, resolvedModel));
61358
+ resolve(transition) {
61359
+ return _rsvp.Promise.resolve(this.routePromise).then(route => {
61360
+ throwIfAborted(transition);
61361
+ return route;
61362
+ }).then(() => this.runBeforeModelHook(transition)).then(() => throwIfAborted(transition)).then(() => this.getModel(transition)).then(resolvedModel => {
61363
+ throwIfAborted(transition);
61364
+ return resolvedModel;
61365
+ }).then(resolvedModel => this.runAfterModelHook(transition, resolvedModel)).then(resolvedModel => this.becomeResolved(transition, resolvedModel));
61329
61366
  }
61330
61367
 
61331
61368
  becomeResolved(transition, resolvedContext) {
@@ -61354,7 +61391,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61354
61391
  return resolved;
61355
61392
  }
61356
61393
 
61357
- shouldSupercede(routeInfo) {
61394
+ shouldSupersede(routeInfo) {
61358
61395
  // Prefer this newer routeInfo over `other` if:
61359
61396
  // 1) The other one doesn't exist
61360
61397
  // 2) The names don't match
@@ -61450,14 +61487,6 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61450
61487
  });
61451
61488
  }
61452
61489
 
61453
- checkForAbort(shouldContinue, value) {
61454
- return _rsvp.Promise.resolve(shouldContinue()).then(function () {
61455
- // We don't care about shouldContinue's resolve value;
61456
- // pass along the original value passed to this fn.
61457
- return value;
61458
- }, null);
61459
- }
61460
-
61461
61490
  stashResolvedModel(transition, resolvedModel) {
61462
61491
  transition.resolvedModels = transition.resolvedModels || {};
61463
61492
  transition.resolvedModels[this.name] = resolvedModel;
@@ -61498,7 +61527,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61498
61527
  this.context = context;
61499
61528
  }
61500
61529
 
61501
- resolve(_shouldContinue, transition) {
61530
+ resolve(transition) {
61502
61531
  // A ResolvedRouteInfo just resolved with itself.
61503
61532
  if (transition && transition.resolvedModels) {
61504
61533
  transition.resolvedModels[this.name] = this.context;
@@ -61641,6 +61670,54 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61641
61670
 
61642
61671
  }
61643
61672
 
61673
+ function handleError(currentState, transition, error) {
61674
+ // This is the only possible
61675
+ // reject value of TransitionState#resolve
61676
+ var routeInfos = currentState.routeInfos;
61677
+ var errorHandlerIndex = transition.resolveIndex >= routeInfos.length ? routeInfos.length - 1 : transition.resolveIndex;
61678
+ var wasAborted = transition.isAborted;
61679
+ throw new TransitionError(error, currentState.routeInfos[errorHandlerIndex].route, wasAborted, currentState);
61680
+ }
61681
+
61682
+ function resolveOneRouteInfo(currentState, transition) {
61683
+ if (transition.resolveIndex === currentState.routeInfos.length) {
61684
+ // This is is the only possible
61685
+ // fulfill value of TransitionState#resolve
61686
+ return;
61687
+ }
61688
+
61689
+ var routeInfo = currentState.routeInfos[transition.resolveIndex];
61690
+ return routeInfo.resolve(transition).then(proceed.bind(null, currentState, transition), null, currentState.promiseLabel('Proceed'));
61691
+ }
61692
+
61693
+ function proceed(currentState, transition, resolvedRouteInfo) {
61694
+ var wasAlreadyResolved = currentState.routeInfos[transition.resolveIndex].isResolved; // Swap the previously unresolved routeInfo with
61695
+ // the resolved routeInfo
61696
+
61697
+ currentState.routeInfos[transition.resolveIndex++] = resolvedRouteInfo;
61698
+
61699
+ if (!wasAlreadyResolved) {
61700
+ // Call the redirect hook. The reason we call it here
61701
+ // vs. afterModel is so that redirects into child
61702
+ // routes don't re-run the model hooks for this
61703
+ // already-resolved route.
61704
+ var {
61705
+ route
61706
+ } = resolvedRouteInfo;
61707
+
61708
+ if (route !== undefined) {
61709
+ if (route.redirect) {
61710
+ route.redirect(resolvedRouteInfo.context, transition);
61711
+ }
61712
+ }
61713
+ } // Proceed after ensuring that the redirect hook
61714
+ // didn't abort this transition by transitioning elsewhere.
61715
+
61716
+
61717
+ throwIfAborted(transition);
61718
+ return resolveOneRouteInfo(currentState, transition);
61719
+ }
61720
+
61644
61721
  class TransitionState {
61645
61722
  constructor() {
61646
61723
  this.routeInfos = [];
@@ -61661,7 +61738,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61661
61738
  return promiseLabel("'" + targetName + "': " + label);
61662
61739
  }
61663
61740
 
61664
- resolve(shouldContinue, transition) {
61741
+ resolve(transition) {
61665
61742
  // First, calculate params for this state. This is useful
61666
61743
  // information to provide to the various route hooks.
61667
61744
  var params = this.params;
@@ -61669,67 +61746,9 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61669
61746
  params[routeInfo.name] = routeInfo.params || {};
61670
61747
  return true;
61671
61748
  });
61672
- transition.resolveIndex = 0;
61673
- var currentState = this;
61674
- var wasAborted = false; // The prelude RSVP.resolve() asyncs us into the promise land.
61675
-
61676
- return _rsvp.Promise.resolve(null, this.promiseLabel('Start transition')).then(resolveOneRouteInfo, null, this.promiseLabel('Resolve route')).catch(handleError, this.promiseLabel('Handle error'));
61677
-
61678
- function innerShouldContinue() {
61679
- return _rsvp.Promise.resolve(shouldContinue(), currentState.promiseLabel('Check if should continue')).catch(function (reason) {
61680
- // We distinguish between errors that occurred
61681
- // during resolution (e.g. before"Model/model/afterModel),
61682
- // and aborts due to a rejecting promise from shouldContinue().
61683
- wasAborted = true;
61684
- return _rsvp.Promise.reject(reason);
61685
- }, currentState.promiseLabel('Handle abort'));
61686
- }
61687
-
61688
- function handleError(error) {
61689
- // This is the only possible
61690
- // reject value of TransitionState#resolve
61691
- var routeInfos = currentState.routeInfos;
61692
- var errorHandlerIndex = transition.resolveIndex >= routeInfos.length ? routeInfos.length - 1 : transition.resolveIndex;
61693
- return _rsvp.Promise.reject(new TransitionError(error, currentState.routeInfos[errorHandlerIndex].route, wasAborted, currentState));
61694
- }
61695
-
61696
- function proceed(resolvedRouteInfo) {
61697
- var wasAlreadyResolved = currentState.routeInfos[transition.resolveIndex].isResolved; // Swap the previously unresolved routeInfo with
61698
- // the resolved routeInfo
61699
-
61700
- currentState.routeInfos[transition.resolveIndex++] = resolvedRouteInfo;
61701
-
61702
- if (!wasAlreadyResolved) {
61703
- // Call the redirect hook. The reason we call it here
61704
- // vs. afterModel is so that redirects into child
61705
- // routes don't re-run the model hooks for this
61706
- // already-resolved route.
61707
- var {
61708
- route
61709
- } = resolvedRouteInfo;
61710
-
61711
- if (route !== undefined) {
61712
- if (route.redirect) {
61713
- route.redirect(resolvedRouteInfo.context, transition);
61714
- }
61715
- }
61716
- } // Proceed after ensuring that the redirect hook
61717
- // didn't abort this transition by transitioning elsewhere.
61718
-
61719
-
61720
- return innerShouldContinue().then(resolveOneRouteInfo, null, currentState.promiseLabel('Resolve route'));
61721
- }
61749
+ transition.resolveIndex = 0; // The prelude RSVP.resolve() async moves us into the promise land.
61722
61750
 
61723
- function resolveOneRouteInfo() {
61724
- if (transition.resolveIndex === currentState.routeInfos.length) {
61725
- // This is is the only possible
61726
- // fulfill value of TransitionState#resolve
61727
- return currentState;
61728
- }
61729
-
61730
- var routeInfo = currentState.routeInfos[transition.resolveIndex];
61731
- return routeInfo.resolve(innerShouldContinue, transition).then(proceed, null, currentState.promiseLabel('Proceed'));
61732
- }
61751
+ return _rsvp.Promise.resolve(null, this.promiseLabel('Start transition')).then(resolveOneRouteInfo.bind(null, this, transition), null, this.promiseLabel('Resolve route')).catch(handleError.bind(null, this, transition), this.promiseLabel('Handle error')).then(() => this);
61733
61752
  }
61734
61753
 
61735
61754
  }
@@ -61821,7 +61840,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61821
61840
 
61822
61841
  var handlerToUse = oldHandlerInfo;
61823
61842
 
61824
- if (i >= invalidateIndex || newHandlerInfo.shouldSupercede(oldHandlerInfo)) {
61843
+ if (i >= invalidateIndex || newHandlerInfo.shouldSupersede(oldHandlerInfo)) {
61825
61844
  invalidateIndex = Math.min(i, invalidateIndex);
61826
61845
  handlerToUse = newHandlerInfo;
61827
61846
  }
@@ -61842,6 +61861,11 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61842
61861
  }
61843
61862
 
61844
61863
  merge(newState.queryParams, this.queryParams || {});
61864
+
61865
+ if (isIntermediate && oldState.queryParams) {
61866
+ merge(newState.queryParams, oldState.queryParams);
61867
+ }
61868
+
61845
61869
  return newState;
61846
61870
  }
61847
61871
 
@@ -61994,14 +62018,14 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
61994
62018
  if (route) {
61995
62019
  checkHandlerAccessibility(route);
61996
62020
  } else {
61997
- // If the hanlder is being loaded asynchronously, check if we can
62021
+ // If the handler is being loaded asynchronously, check if we can
61998
62022
  // access it after it has resolved
61999
62023
  newRouteInfo.routePromise = newRouteInfo.routePromise.then(checkHandlerAccessibility);
62000
62024
  }
62001
62025
 
62002
62026
  var oldRouteInfo = oldState.routeInfos[i];
62003
62027
 
62004
- if (statesDiffer || newRouteInfo.shouldSupercede(oldRouteInfo)) {
62028
+ if (statesDiffer || newRouteInfo.shouldSupersede(oldRouteInfo)) {
62005
62029
  statesDiffer = true;
62006
62030
  newState.routeInfos[i] = newRouteInfo;
62007
62031
  } else {
@@ -62039,13 +62063,13 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
62039
62063
 
62040
62064
  map(callback) {
62041
62065
  this.recognizer.map(callback, function (recognizer, routes) {
62042
- for (var i = routes.length - 1, proceed = true; i >= 0 && proceed; --i) {
62066
+ for (var i = routes.length - 1, _proceed = true; i >= 0 && _proceed; --i) {
62043
62067
  var route = routes[i];
62044
62068
  var handler = route.handler;
62045
62069
  recognizer.add(routes, {
62046
62070
  as: handler
62047
62071
  });
62048
- proceed = route.path === '/' || route.path === '' || handler.slice(-6) === '.index';
62072
+ _proceed = route.path === '/' || route.path === '' || handler.slice(-6) === '.index';
62049
62073
  }
62050
62074
  });
62051
62075
  }
@@ -62154,6 +62178,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
62154
62178
 
62155
62179
  if (isIntermediate) {
62156
62180
  var transition = new Transition(this, undefined, newState);
62181
+ transition.isIntermediate = true;
62157
62182
  this.toReadOnlyInfos(transition, newState);
62158
62183
  this.setupContexts(newState, transition);
62159
62184
  this.routeWillChange(transition);
@@ -62260,7 +62285,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
62260
62285
 
62261
62286
  return routeInfos[routeInfos.length - 1].route;
62262
62287
  } catch (e) {
62263
- if (!(e instanceof TransitionAbortedError)) {
62288
+ if (!isTransitionAborted(e)) {
62264
62289
  var infos = transition[STATE_SYMBOL].routeInfos;
62265
62290
  transition.trigger(true, 'error', e, transition, infos[infos.length - 1].route);
62266
62291
  transition.abort();
@@ -62390,10 +62415,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
62390
62415
  }
62391
62416
  }
62392
62417
 
62393
- if (transition && transition.isAborted) {
62394
- throw new TransitionAbortedError();
62395
- }
62396
-
62418
+ throwIfAborted(transition);
62397
62419
  route.context = context;
62398
62420
 
62399
62421
  if (route.contextDidChange !== undefined) {
@@ -62404,10 +62426,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
62404
62426
  route.setup(context, transition);
62405
62427
  }
62406
62428
 
62407
- if (transition && transition.isAborted) {
62408
- throw new TransitionAbortedError();
62409
- }
62410
-
62429
+ throwIfAborted(transition);
62411
62430
  currentRouteInfos.push(routeInfo);
62412
62431
  return route;
62413
62432
  } // If the route doesn't exist, it means we haven't resolved the route promise yet
@@ -62537,7 +62556,7 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
62537
62556
  // button
62538
62557
 
62539
62558
  var initial = transition.isCausedByInitialTransition; // say you are at / and you click a link to route /foo. In /foo's
62540
- // route, the transition is aborted using replacewith('/bar').
62559
+ // route, the transition is aborted using replaceWith('/bar').
62541
62560
  // Because the current url is still /, the history entry for / is
62542
62561
  // removed from the history. Clicking back will take you to the page
62543
62562
  // you were on before /, which is often not even the app, thus killing
@@ -62789,10 +62808,10 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
62789
62808
  }
62790
62809
 
62791
62810
  var targetHandler = targetRouteInfos[targetRouteInfos.length - 1].name;
62792
- var recogHandlers = this.recognizer.handlersFor(targetHandler);
62811
+ var recognizerHandlers = this.recognizer.handlersFor(targetHandler);
62793
62812
  var index = 0;
62794
62813
 
62795
- for (len = recogHandlers.length; index < len; ++index) {
62814
+ for (len = recognizerHandlers.length; index < len; ++index) {
62796
62815
  routeInfo = targetRouteInfos[index];
62797
62816
 
62798
62817
  if (routeInfo.name === routeName) {
@@ -62800,16 +62819,16 @@ define("router_js", ["exports", "@ember/polyfills", "rsvp", "route-recognizer"],
62800
62819
  }
62801
62820
  }
62802
62821
 
62803
- if (index === recogHandlers.length) {
62822
+ if (index === recognizerHandlers.length) {
62804
62823
  // The provided route name isn't even in the route hierarchy.
62805
62824
  return false;
62806
62825
  }
62807
62826
 
62808
62827
  var testState = new TransitionState();
62809
62828
  testState.routeInfos = targetRouteInfos.slice(0, index + 1);
62810
- recogHandlers = recogHandlers.slice(0, index + 1);
62829
+ recognizerHandlers = recognizerHandlers.slice(0, index + 1);
62811
62830
  var intent = new NamedTransitionIntent(this, targetHandler, undefined, contexts);
62812
- var newState = intent.applyToHandlers(testState, recogHandlers, targetHandler, true, true);
62831
+ var newState = intent.applyToHandlers(testState, recognizerHandlers, targetHandler, true, true);
62813
62832
  var routesEqual = routeInfosEqual(newState.routeInfos, testState.routeInfos);
62814
62833
 
62815
62834
  if (!queryParams || !routesEqual) {