ember-source 2.8.0.beta.2 → 2.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +10 -22
- data/dist/ember-template-compiler.js +12 -9
- data/dist/ember-testing.js +13 -9
- data/dist/ember-tests.js +80794 -0
- data/dist/ember-tests.prod.js +80729 -0
- data/dist/ember.debug.js +518 -477
- data/dist/ember.js +518 -477
- data/dist/ember.min.js +13 -13
- data/dist/ember.prod.js +505 -468
- metadata +6 -4
data/dist/ember.debug.js
CHANGED
@@ -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 2.8.0
|
9
|
+
* @version 2.8.0
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, require, Ember;
|
@@ -4040,18 +4040,9 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
|
|
4040
4040
|
var options = arguments.length <= 1 || arguments[1] === undefined ? new BootOptions() : arguments[1];
|
4041
4041
|
|
4042
4042
|
registry.register('-environment:main', options.toEnvironment(), { instantiate: false });
|
4043
|
-
registry.injection('view', '_environment', '-environment:main');
|
4044
|
-
registry.injection('route', '_environment', '-environment:main');
|
4045
|
-
|
4046
4043
|
registry.register('service:-document', options.document, { instantiate: false });
|
4047
4044
|
|
4048
|
-
|
4049
|
-
registry.injection('view', 'renderer', 'renderer:-dom');
|
4050
|
-
registry.injection('component', 'renderer', 'renderer:-dom');
|
4051
|
-
} else {
|
4052
|
-
registry.injection('view', 'renderer', 'renderer:-inert');
|
4053
|
-
registry.injection('component', 'renderer', 'renderer:-inert');
|
4054
|
-
}
|
4045
|
+
this._super(registry, options);
|
4055
4046
|
}
|
4056
4047
|
});
|
4057
4048
|
|
@@ -4225,6 +4216,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
|
|
4225
4216
|
var env = _emberMetalAssign.default({}, _emberEnvironment.environment);
|
4226
4217
|
// For compatibility with existing code
|
4227
4218
|
env.hasDOM = this.isBrowser;
|
4219
|
+
env.isInteractive = this.isInteractive;
|
4228
4220
|
env.options = this;
|
4229
4221
|
return env;
|
4230
4222
|
};
|
@@ -4257,7 +4249,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
|
|
4257
4249
|
|
4258
4250
|
exports.default = ApplicationInstance;
|
4259
4251
|
});
|
4260
|
-
enifed('ember-application/system/application', ['exports', 'ember-environment', 'ember-metal/debug', 'ember-metal/libraries', 'ember-metal/testing', 'ember-metal/property_get', 'ember-runtime/system/namespace', 'ember-runtime/system/lazy_load', 'ember-metal/run_loop', 'ember-views/system/event_dispatcher', 'ember-views/system/jquery', 'ember-routing/system/route', 'ember-routing/system/router', 'ember-routing/location/hash_location', 'ember-routing/location/history_location', 'ember-routing/location/auto_location', 'ember-routing/location/none_location', 'ember-routing/system/cache', 'ember-application/system/application-instance', 'ember-runtime/mixins/registry_proxy', 'container/registry', 'ember-runtime/ext/rsvp', 'ember-application/system/engine', 'require'], function (exports, _emberEnvironment, _emberMetalDebug, _emberMetalLibraries, _emberMetalTesting, _emberMetalProperty_get, _emberRuntimeSystemNamespace, _emberRuntimeSystemLazy_load, _emberMetalRun_loop, _emberViewsSystemEvent_dispatcher, _emberViewsSystemJquery, _emberRoutingSystemRoute, _emberRoutingSystemRouter, _emberRoutingLocationHash_location, _emberRoutingLocationHistory_location, _emberRoutingLocationAuto_location, _emberRoutingLocationNone_location, _emberRoutingSystemCache, _emberApplicationSystemApplicationInstance, _emberRuntimeMixinsRegistry_proxy, _containerRegistry, _emberRuntimeExtRsvp, _emberApplicationSystemEngine, _require) {
|
4252
|
+
enifed('ember-application/system/application', ['exports', 'ember-environment', 'ember-metal/debug', 'ember-metal/dictionary', 'ember-metal/libraries', 'ember-metal/testing', 'ember-metal/property_get', 'ember-runtime/system/namespace', 'ember-runtime/system/lazy_load', 'ember-metal/run_loop', 'ember-views/system/event_dispatcher', 'ember-views/system/jquery', 'ember-routing/system/route', 'ember-routing/system/router', 'ember-routing/location/hash_location', 'ember-routing/location/history_location', 'ember-routing/location/auto_location', 'ember-routing/location/none_location', 'ember-routing/system/cache', 'ember-application/system/application-instance', 'ember-runtime/mixins/registry_proxy', 'container/registry', 'ember-runtime/ext/rsvp', 'ember-application/system/engine', 'require'], function (exports, _emberEnvironment, _emberMetalDebug, _emberMetalDictionary, _emberMetalLibraries, _emberMetalTesting, _emberMetalProperty_get, _emberRuntimeSystemNamespace, _emberRuntimeSystemLazy_load, _emberMetalRun_loop, _emberViewsSystemEvent_dispatcher, _emberViewsSystemJquery, _emberRoutingSystemRoute, _emberRoutingSystemRouter, _emberRoutingLocationHash_location, _emberRoutingLocationHistory_location, _emberRoutingLocationAuto_location, _emberRoutingLocationNone_location, _emberRoutingSystemCache, _emberApplicationSystemApplicationInstance, _emberRuntimeMixinsRegistry_proxy, _containerRegistry, _emberRuntimeExtRsvp, _emberApplicationSystemEngine, _require) {
|
4261
4253
|
/**
|
4262
4254
|
@module ember
|
4263
4255
|
@submodule ember-application
|
@@ -5167,7 +5159,7 @@ enifed('ember-application/system/application', ['exports', 'ember-environment',
|
|
5167
5159
|
|
5168
5160
|
function commonSetupRegistry(registry) {
|
5169
5161
|
registry.register('-view-registry:main', { create: function () {
|
5170
|
-
return
|
5162
|
+
return _emberMetalDictionary.default(null);
|
5171
5163
|
} });
|
5172
5164
|
|
5173
5165
|
registry.register('route:basic', _emberRoutingSystemRoute.default);
|
@@ -5281,11 +5273,9 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
|
|
5281
5273
|
@param options {Object}
|
5282
5274
|
@return {Promise<Ember.EngineInstance,Error>}
|
5283
5275
|
*/
|
5284
|
-
boot: function () {
|
5276
|
+
boot: function (options) {
|
5285
5277
|
var _this = this;
|
5286
5278
|
|
5287
|
-
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
5288
|
-
|
5289
5279
|
if (this._bootPromise) {
|
5290
5280
|
return this._bootPromise;
|
5291
5281
|
}
|
@@ -5320,6 +5310,8 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
|
|
5320
5310
|
this.cloneParentDependencies();
|
5321
5311
|
}
|
5322
5312
|
|
5313
|
+
this.setupRegistry(options);
|
5314
|
+
|
5323
5315
|
this.base.runInstanceInitializers(this);
|
5324
5316
|
|
5325
5317
|
this._booted = true;
|
@@ -5327,6 +5319,12 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
|
|
5327
5319
|
return this;
|
5328
5320
|
},
|
5329
5321
|
|
5322
|
+
setupRegistry: function () {
|
5323
|
+
var options = arguments.length <= 0 || arguments[0] === undefined ? this.__container__.lookup('-environment:main') : arguments[0];
|
5324
|
+
|
5325
|
+
this.constructor.setupRegistry(this.__registry__, options);
|
5326
|
+
},
|
5327
|
+
|
5330
5328
|
/**
|
5331
5329
|
Unregister a factory.
|
5332
5330
|
Overrides `RegistryProxy#unregister` in order to clear any cached instances
|
@@ -5349,6 +5347,32 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
|
|
5349
5347
|
}
|
5350
5348
|
});
|
5351
5349
|
|
5350
|
+
EngineInstance.reopenClass({
|
5351
|
+
/**
|
5352
|
+
@private
|
5353
|
+
@method setupRegistry
|
5354
|
+
@param {Registry} registry
|
5355
|
+
@param {BootOptions} options
|
5356
|
+
*/
|
5357
|
+
setupRegistry: function (registry, options) {
|
5358
|
+
// when no options/environment is present, do nothing
|
5359
|
+
if (!options) {
|
5360
|
+
return;
|
5361
|
+
}
|
5362
|
+
|
5363
|
+
registry.injection('view', '_environment', '-environment:main');
|
5364
|
+
registry.injection('route', '_environment', '-environment:main');
|
5365
|
+
|
5366
|
+
if (options.isInteractive) {
|
5367
|
+
registry.injection('view', 'renderer', 'renderer:-dom');
|
5368
|
+
registry.injection('component', 'renderer', 'renderer:-dom');
|
5369
|
+
} else {
|
5370
|
+
registry.injection('view', 'renderer', 'renderer:-inert');
|
5371
|
+
registry.injection('component', 'renderer', 'renderer:-inert');
|
5372
|
+
}
|
5373
|
+
}
|
5374
|
+
});
|
5375
|
+
|
5352
5376
|
if (true) {
|
5353
5377
|
EngineInstance.reopen({
|
5354
5378
|
/**
|
@@ -5387,13 +5411,27 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
|
|
5387
5411
|
|
5388
5412
|
var parent = _emberApplicationSystemEngineParent.getEngineParent(this);
|
5389
5413
|
|
5390
|
-
['route:basic', 'event_dispatcher:main', 'service:-routing']
|
5414
|
+
var registrations = ['route:basic', 'event_dispatcher:main', 'service:-routing'];
|
5415
|
+
|
5416
|
+
if (false) {
|
5417
|
+
registrations.push('service:-glimmer-environment');
|
5418
|
+
}
|
5419
|
+
|
5420
|
+
registrations.forEach(function (key) {
|
5391
5421
|
return _this2.register(key, parent.resolveRegistration(key));
|
5392
5422
|
});
|
5393
5423
|
|
5394
|
-
|
5424
|
+
var env = parent.lookup('-environment:main');
|
5425
|
+
this.register('-environment:main', env, { instantiate: false });
|
5426
|
+
|
5427
|
+
var singletons = ['router:main', _containerRegistry.privatize(_templateObject), '-view-registry:main', 'renderer:-' + (env.isInteractive ? 'dom' : 'inert')];
|
5428
|
+
|
5429
|
+
singletons.forEach(function (key) {
|
5395
5430
|
return _this2.register(key, parent.lookup(key), { instantiate: false });
|
5396
5431
|
});
|
5432
|
+
|
5433
|
+
this.inject('view', '_environment', '-environment:main');
|
5434
|
+
this.inject('route', '_environment', '-environment:main');
|
5397
5435
|
}
|
5398
5436
|
});
|
5399
5437
|
}
|
@@ -6624,13 +6662,16 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/error', 'ember-console'
|
|
6624
6662
|
|
6625
6663
|
@method deprecate
|
6626
6664
|
@param {String} message A description of the deprecation.
|
6627
|
-
@param {Boolean} test A boolean. If falsy, the deprecation
|
6628
|
-
|
6629
|
-
@param {
|
6630
|
-
|
6631
|
-
|
6632
|
-
|
6633
|
-
|
6665
|
+
@param {Boolean} test A boolean. If falsy, the deprecation will be displayed.
|
6666
|
+
@param {Object} options
|
6667
|
+
@param {String} options.id A unique id for this deprecation. The id can be
|
6668
|
+
used by Ember debugging tools to change the behavior (raise, log or silence)
|
6669
|
+
for that specific deprecation. The id should be namespaced by dots, e.g.
|
6670
|
+
"view.helper.select".
|
6671
|
+
@param {string} options.until The version of Ember when this deprecation
|
6672
|
+
warning will be removed.
|
6673
|
+
@param {String} [options.url] An optional url to the transition guide on the
|
6674
|
+
emberjs.com website.
|
6634
6675
|
@for Ember
|
6635
6676
|
@public
|
6636
6677
|
*/
|
@@ -9107,7 +9148,7 @@ enifed('ember-htmlbars/components/link-to', ['exports', 'ember-console', 'ember-
|
|
9107
9148
|
if (lastParam && lastParam.isQueryParams) {
|
9108
9149
|
queryParams = params.pop();
|
9109
9150
|
} else {
|
9110
|
-
queryParams = {};
|
9151
|
+
queryParams = { values: {} };
|
9111
9152
|
}
|
9112
9153
|
this.set('queryParams', queryParams);
|
9113
9154
|
|
@@ -10258,17 +10299,37 @@ enifed('ember-htmlbars/hooks/classify', ['exports', 'ember-htmlbars/utils/is-com
|
|
10258
10299
|
return null;
|
10259
10300
|
}
|
10260
10301
|
});
|
10261
|
-
enifed(
|
10302
|
+
enifed('ember-htmlbars/hooks/cleanup-render-node', ['exports'], function (exports) {
|
10262
10303
|
/**
|
10263
10304
|
@module ember
|
10264
10305
|
@submodule ember-htmlbars
|
10265
10306
|
*/
|
10266
10307
|
|
10267
|
-
|
10308
|
+
'use strict';
|
10268
10309
|
|
10269
10310
|
exports.default = cleanupRenderNode;
|
10270
10311
|
|
10271
10312
|
function cleanupRenderNode(renderNode) {
|
10313
|
+
var view = renderNode.emberView;
|
10314
|
+
if (view) {
|
10315
|
+
view.renderer.willDestroyElement(view);
|
10316
|
+
view.ownerView._destroyingSubtreeForView.push(function (env) {
|
10317
|
+
view._transitionTo('destroying'); // unregisters view
|
10318
|
+
// prevents rerender and scheduling
|
10319
|
+
view._renderNode = null;
|
10320
|
+
renderNode.emberView = null;
|
10321
|
+
|
10322
|
+
view.renderer.didDestroyElement(view);
|
10323
|
+
|
10324
|
+
if (view.parentView && view.parentView === env.view) {
|
10325
|
+
view.parentView.removeChild(view);
|
10326
|
+
}
|
10327
|
+
view.parentView = null;
|
10328
|
+
|
10329
|
+
view._transitionTo('preRender');
|
10330
|
+
});
|
10331
|
+
}
|
10332
|
+
|
10272
10333
|
if (renderNode.cleanup) {
|
10273
10334
|
renderNode.cleanup();
|
10274
10335
|
}
|
@@ -10313,24 +10374,15 @@ enifed('ember-htmlbars/hooks/component', ['exports', 'ember-metal/debug', 'ember
|
|
10313
10374
|
// Determine if this is an initial render or a re-render.
|
10314
10375
|
if (state.manager) {
|
10315
10376
|
var sm = state.manager;
|
10316
|
-
var templateMeta = null;
|
10317
|
-
if (sm.block) {
|
10318
|
-
templateMeta = sm.block.template.meta;
|
10319
|
-
} else if (sm.scope && sm.scope._view && sm.scope._view.template) {
|
10320
|
-
templateMeta = sm.scope._view.template.meta;
|
10321
|
-
}
|
10322
|
-
env.meta.moduleName = templateMeta && templateMeta.moduleName || env.meta && env.meta.moduleName;
|
10323
10377
|
_emberHtmlbarsUtilsExtractPositionalParams.default(renderNode, sm.component.constructor, params, attrs, false);
|
10324
10378
|
state.manager.rerender(env, attrs, visitor);
|
10325
10379
|
return;
|
10326
10380
|
}
|
10327
10381
|
|
10328
10382
|
var parentView = env.view;
|
10329
|
-
|
10383
|
+
|
10330
10384
|
var moduleName = env.meta && env.meta.moduleName;
|
10331
|
-
|
10332
|
-
options.source = 'template:' + moduleName;
|
10333
|
-
}
|
10385
|
+
var options = { source: moduleName && 'template:' + moduleName };
|
10334
10386
|
|
10335
10387
|
var _lookupComponent = _emberViewsUtilsLookupComponent.default(env.owner, tagName, options);
|
10336
10388
|
|
@@ -10600,15 +10652,17 @@ enifed("ember-htmlbars/hooks/destroy-render-node", ["exports"], function (export
|
|
10600
10652
|
function destroyRenderNode(renderNode) {
|
10601
10653
|
var view = renderNode.emberView;
|
10602
10654
|
if (view) {
|
10603
|
-
view.
|
10655
|
+
view.ownerView._destroyingSubtreeForView.push(function () {
|
10656
|
+
view.destroy();
|
10657
|
+
});
|
10604
10658
|
}
|
10605
|
-
|
10606
10659
|
var streamUnsubscribers = renderNode.streamUnsubscribers;
|
10607
10660
|
if (streamUnsubscribers) {
|
10608
10661
|
for (var i = 0; i < streamUnsubscribers.length; i++) {
|
10609
10662
|
streamUnsubscribers[i]();
|
10610
10663
|
}
|
10611
10664
|
}
|
10665
|
+
renderNode.streamUnsubscribers = null;
|
10612
10666
|
}
|
10613
10667
|
});
|
10614
10668
|
enifed("ember-htmlbars/hooks/did-cleanup-tree", ["exports"], function (exports) {
|
@@ -10619,6 +10673,10 @@ enifed("ember-htmlbars/hooks/did-cleanup-tree", ["exports"], function (exports)
|
|
10619
10673
|
function didCleanupTree(env) {
|
10620
10674
|
// Once we have finsihed cleaning up the render node and sub-nodes, reset
|
10621
10675
|
// state tracking which view those render nodes belonged to.
|
10676
|
+
var queue = env.view.ownerView._destroyingSubtreeForView;
|
10677
|
+
for (var i = 0; i < queue.length; i++) {
|
10678
|
+
queue[i](env);
|
10679
|
+
}
|
10622
10680
|
env.view.ownerView._destroyingSubtreeForView = null;
|
10623
10681
|
}
|
10624
10682
|
});
|
@@ -11105,7 +11163,7 @@ enifed("ember-htmlbars/hooks/will-cleanup-tree", ["exports"], function (exports)
|
|
11105
11163
|
// the `childViews` array. Other parent/child view relationships are
|
11106
11164
|
// untouched. This view is then cleared once cleanup is complete in
|
11107
11165
|
// `didCleanupTree`.
|
11108
|
-
view.ownerView._destroyingSubtreeForView =
|
11166
|
+
view.ownerView._destroyingSubtreeForView = [];
|
11109
11167
|
}
|
11110
11168
|
});
|
11111
11169
|
enifed('ember-htmlbars/index', ['exports', 'ember-metal/core', 'ember-htmlbars/helpers', 'ember-htmlbars/helpers/if_unless', 'ember-htmlbars/helpers/with', 'ember-htmlbars/helpers/loc', 'ember-htmlbars/helpers/log', 'ember-htmlbars/helpers/each', 'ember-htmlbars/helpers/each-in', 'ember-htmlbars/helpers/-normalize-class', 'ember-htmlbars/helpers/concat', 'ember-htmlbars/helpers/-join-classes', 'ember-htmlbars/helpers/-html-safe', 'ember-htmlbars/helpers/hash', 'ember-htmlbars/helpers/query-params', 'ember-htmlbars/system/dom-helper', 'ember-htmlbars/system/template'], function (exports, _emberMetalCore, _emberHtmlbarsHelpers, _emberHtmlbarsHelpersIf_unless, _emberHtmlbarsHelpersWith, _emberHtmlbarsHelpersLoc, _emberHtmlbarsHelpersLog, _emberHtmlbarsHelpersEach, _emberHtmlbarsHelpersEachIn, _emberHtmlbarsHelpersNormalizeClass, _emberHtmlbarsHelpersConcat, _emberHtmlbarsHelpersJoinClasses, _emberHtmlbarsHelpersHtmlSafe, _emberHtmlbarsHelpersHash, _emberHtmlbarsHelpersQueryParams, _emberHtmlbarsSystemDomHelper, _emberHtmlbarsSystemTemplate) {
|
@@ -12181,11 +12239,7 @@ enifed('ember-htmlbars/keywords/element-component', ['exports', 'ember-metal/ass
|
|
12181
12239
|
// but the `{{component}}` helper can.
|
12182
12240
|
state.manager = null;
|
12183
12241
|
|
12184
|
-
|
12185
|
-
rest[_key - 1] = arguments[_key];
|
12186
|
-
}
|
12187
|
-
|
12188
|
-
render.apply(undefined, [morph].concat(rest));
|
12242
|
+
render.apply(undefined, arguments);
|
12189
12243
|
},
|
12190
12244
|
|
12191
12245
|
rerender: render
|
@@ -13084,12 +13138,12 @@ enifed('ember-htmlbars/keywords/partial', ['exports', 'ember-views/system/lookup
|
|
13084
13138
|
```
|
13085
13139
|
|
13086
13140
|
The above example template will render a template named
|
13087
|
-
"
|
13088
|
-
it's rendered into, so if the "
|
13141
|
+
"-nav", which has the same context as the parent template
|
13142
|
+
it's rendered into, so if the "-nav" template also referenced
|
13089
13143
|
`{{foo}}`, it would print the same thing as the `{{foo}}`
|
13090
13144
|
in the above example.
|
13091
13145
|
|
13092
|
-
If a "
|
13146
|
+
If a "-nav" template isn't found, the `partial` helper will
|
13093
13147
|
fall back to a template named "nav".
|
13094
13148
|
|
13095
13149
|
### Bound template names
|
@@ -14000,7 +14054,8 @@ enifed('ember-htmlbars/node-managers/component-node-manager', ['exports', 'ember
|
|
14000
14054
|
var component = this.component;
|
14001
14055
|
|
14002
14056
|
return _emberHtmlbarsSystemInstrumentationSupport.instrument(component, function ComponentNodeManager_rerender_instrument() {
|
14003
|
-
var
|
14057
|
+
var meta = this.block && this.block.template.meta;
|
14058
|
+
var env = _env.childWithView(component, meta);
|
14004
14059
|
|
14005
14060
|
var snapshot = takeSnapshot(attrs);
|
14006
14061
|
|
@@ -14030,13 +14085,10 @@ enifed('ember-htmlbars/node-managers/component-node-manager', ['exports', 'ember
|
|
14030
14085
|
};
|
14031
14086
|
|
14032
14087
|
ComponentNodeManager.prototype.destroy = function ComponentNodeManager_destroy() {
|
14033
|
-
var component = this.component;
|
14034
|
-
|
14035
14088
|
// Clear component's render node. Normally this gets cleared
|
14036
14089
|
// during view destruction, but in this case we're re-assigning the
|
14037
14090
|
// node to a different view and it will get cleaned up automatically.
|
14038
|
-
component.
|
14039
|
-
component.destroy();
|
14091
|
+
this.component.destroy();
|
14040
14092
|
};
|
14041
14093
|
|
14042
14094
|
function createComponent(_component, props, renderNode, env) {
|
@@ -14406,7 +14458,7 @@ enifed('ember-htmlbars/renderer', ['exports', 'ember-metal/run_loop', 'ember-met
|
|
14406
14458
|
|
14407
14459
|
Renderer.prototype.revalidateTopLevelView = function Renderer_revalidateTopLevelView(view) {
|
14408
14460
|
// This guard prevents revalidation on an already-destroyed view.
|
14409
|
-
if (view._renderNode.lastResult) {
|
14461
|
+
if (view._renderNode && view._renderNode.lastResult) {
|
14410
14462
|
view._renderNode.lastResult.revalidate(view._env);
|
14411
14463
|
this.dispatchLifecycleHooks(view._env);
|
14412
14464
|
this.clearRenderedViews(view._env);
|
@@ -14578,33 +14630,13 @@ enifed('ember-htmlbars/renderer', ['exports', 'ember-metal/run_loop', 'ember-met
|
|
14578
14630
|
renderNode.ownerNode.emberView.scheduleRevalidate(renderNode, view.toString(), 'rerendering');
|
14579
14631
|
};
|
14580
14632
|
|
14581
|
-
Renderer.prototype.remove = function (view
|
14582
|
-
var renderNode = view._renderNode;
|
14583
|
-
view._renderNode = null;
|
14584
|
-
if (renderNode) {
|
14585
|
-
renderNode.emberView = null;
|
14586
|
-
this.willDestroyElement(view);
|
14587
|
-
view._transitionTo('destroying');
|
14588
|
-
|
14589
|
-
view._renderNode = null;
|
14590
|
-
var _lastResult = renderNode.lastResult;
|
14591
|
-
if (_lastResult) {
|
14592
|
-
_htmlbarsRuntime.internal.clearMorph(renderNode, _lastResult.env, shouldDestroy !== false);
|
14593
|
-
}
|
14594
|
-
if (!shouldDestroy) {
|
14595
|
-
view._transitionTo('preRender');
|
14596
|
-
}
|
14597
|
-
this.didDestroyElement(view);
|
14598
|
-
}
|
14599
|
-
|
14600
|
-
// toplevel view removed, remove insertion point
|
14633
|
+
Renderer.prototype.remove = function (view) {
|
14601
14634
|
var lastResult = view.lastResult;
|
14602
14635
|
if (lastResult) {
|
14636
|
+
// toplevel only.
|
14603
14637
|
view.lastResult = null;
|
14604
14638
|
lastResult.destroy();
|
14605
|
-
}
|
14606
|
-
|
14607
|
-
if (shouldDestroy && !view.isDestroying) {
|
14639
|
+
} else {
|
14608
14640
|
view.destroy();
|
14609
14641
|
}
|
14610
14642
|
};
|
@@ -14653,12 +14685,16 @@ enifed('ember-htmlbars/renderer', ['exports', 'ember-metal/run_loop', 'ember-met
|
|
14653
14685
|
};
|
14654
14686
|
exports.InteractiveRenderer = InteractiveRenderer;
|
14655
14687
|
});
|
14656
|
-
enifed('ember-htmlbars/setup-registry', ['exports', 'ember-htmlbars/renderer', 'ember-htmlbars/system/dom-helper', 'ember-htmlbars/templates/top-level-view', 'ember-htmlbars/views/outlet', 'ember-views/views/view', 'ember-htmlbars/components/text_field', 'ember-htmlbars/components/text_area', 'ember-htmlbars/components/checkbox', 'ember-htmlbars/components/link-to', 'ember-views/mixins/template_support'], function (exports, _emberHtmlbarsRenderer, _emberHtmlbarsSystemDomHelper, _emberHtmlbarsTemplatesTopLevelView, _emberHtmlbarsViewsOutlet, _emberViewsViewsView, _emberHtmlbarsComponentsText_field, _emberHtmlbarsComponentsText_area, _emberHtmlbarsComponentsCheckbox, _emberHtmlbarsComponentsLinkTo, _emberViewsMixinsTemplate_support) {
|
14688
|
+
enifed('ember-htmlbars/setup-registry', ['exports', 'container/registry', 'ember-htmlbars/renderer', 'ember-htmlbars/system/dom-helper', 'ember-htmlbars/templates/top-level-view', 'ember-htmlbars/views/outlet', 'ember-views/views/view', 'ember-htmlbars/component', 'ember-htmlbars/components/text_field', 'ember-htmlbars/components/text_area', 'ember-htmlbars/components/checkbox', 'ember-htmlbars/components/link-to', 'ember-views/mixins/template_support'], function (exports, _containerRegistry, _emberHtmlbarsRenderer, _emberHtmlbarsSystemDomHelper, _emberHtmlbarsTemplatesTopLevelView, _emberHtmlbarsViewsOutlet, _emberViewsViewsView, _emberHtmlbarsComponent, _emberHtmlbarsComponentsText_field, _emberHtmlbarsComponentsText_area, _emberHtmlbarsComponentsCheckbox, _emberHtmlbarsComponentsLinkTo, _emberViewsMixinsTemplate_support) {
|
14657
14689
|
'use strict';
|
14658
14690
|
|
14659
14691
|
exports.setupApplicationRegistry = setupApplicationRegistry;
|
14660
14692
|
exports.setupEngineRegistry = setupEngineRegistry;
|
14661
14693
|
|
14694
|
+
var _templateObject = _taggedTemplateLiteralLoose(['component:-default'], ['component:-default']);
|
14695
|
+
|
14696
|
+
function _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }
|
14697
|
+
|
14662
14698
|
function setupApplicationRegistry(registry) {
|
14663
14699
|
registry.register('renderer:-dom', _emberHtmlbarsRenderer.InteractiveRenderer);
|
14664
14700
|
registry.register('renderer:-inert', _emberHtmlbarsRenderer.InertRenderer);
|
@@ -14682,6 +14718,8 @@ enifed('ember-htmlbars/setup-registry', ['exports', 'ember-htmlbars/renderer', '
|
|
14682
14718
|
registry.register('component:-text-area', _emberHtmlbarsComponentsText_area.default);
|
14683
14719
|
registry.register('component:-checkbox', _emberHtmlbarsComponentsCheckbox.default);
|
14684
14720
|
registry.register('component:link-to', _emberHtmlbarsComponentsLinkTo.default);
|
14721
|
+
|
14722
|
+
registry.register(_containerRegistry.privatize(_templateObject), _emberHtmlbarsComponent.default);
|
14685
14723
|
}
|
14686
14724
|
});
|
14687
14725
|
enifed('ember-htmlbars/streams/built-in-helper', ['exports', 'ember-htmlbars/streams/stream', 'ember-htmlbars/streams/utils'], function (exports, _emberHtmlbarsStreamsStream, _emberHtmlbarsStreamsUtils) {
|
@@ -16050,7 +16088,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
|
|
16050
16088
|
var _component2 = component;
|
16051
16089
|
var elementId = _component2.elementId;
|
16052
16090
|
|
16053
|
-
return tagName !== '' || !elementId && elementId !== '';
|
16091
|
+
return tagName !== '' || attrs.id === elementId || !elementId && elementId !== '';
|
16054
16092
|
})());
|
16055
16093
|
|
16056
16094
|
_emberMetalDebug.assert('You cannot use `attributeBindings` on a tag-less component: ' + component.toString(), (function () {
|
@@ -16196,7 +16234,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
|
|
16196
16234
|
}
|
16197
16235
|
}
|
16198
16236
|
|
16199
|
-
normalized.role = _htmlbarsUtilTemplateUtils.buildStatement('get', 'ariaRole');
|
16237
|
+
normalized.role = normalized.role || _htmlbarsUtilTemplateUtils.buildStatement('get', 'ariaRole');
|
16200
16238
|
|
16201
16239
|
if (attrs.tagName) {
|
16202
16240
|
component.tagName = attrs.tagName;
|
@@ -17076,7 +17114,14 @@ enifed('ember-htmlbars/utils/subscribe', ['exports', 'ember-htmlbars/streams/uti
|
|
17076
17114
|
node.shouldReceiveAttrs = true;
|
17077
17115
|
}
|
17078
17116
|
|
17079
|
-
|
17117
|
+
// When the toplevelView (aka ownerView) is being torn
|
17118
|
+
// down (generally in tests), `ownerNode.emberView` will be
|
17119
|
+
// set to `null` (to prevent further work while tearing down)
|
17120
|
+
// so we need to guard against that case here
|
17121
|
+
var ownerView = node.ownerNode.emberView;
|
17122
|
+
if (ownerView) {
|
17123
|
+
ownerView.scheduleRevalidate(node, _emberHtmlbarsStreamsUtils.labelFor(stream));
|
17124
|
+
}
|
17080
17125
|
}));
|
17081
17126
|
}
|
17082
17127
|
});
|
@@ -25817,9 +25862,9 @@ enifed('ember-routing/location/auto_location', ['exports', 'ember-metal/debug',
|
|
25817
25862
|
The user agent's global variable. In browsers, this will be `window`.
|
25818
25863
|
@since 1.11
|
25819
25864
|
@property global
|
25820
|
-
@default
|
25865
|
+
@default window
|
25821
25866
|
*/
|
25822
|
-
global: _emberEnvironment.environment.
|
25867
|
+
global: _emberEnvironment.environment.window,
|
25823
25868
|
|
25824
25869
|
/**
|
25825
25870
|
@private
|
@@ -26844,7 +26889,7 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/debug', 'ember-metal
|
|
26844
26889
|
|
26845
26890
|
if (this.enableLoadingSubstates) {
|
26846
26891
|
createRoute(this, name + '_loading', { resetNamespace: options.resetNamespace });
|
26847
|
-
createRoute(this, name + '_error', { path: dummyErrorRoute });
|
26892
|
+
createRoute(this, name + '_error', { resetNamespace: options.resetNamespace, path: dummyErrorRoute });
|
26848
26893
|
}
|
26849
26894
|
|
26850
26895
|
if (callback) {
|
@@ -27000,7 +27045,7 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/debug', 'ember-metal
|
|
27000
27045
|
if (this.enableLoadingSubstates) {
|
27001
27046
|
var dummyErrorRoute = '/_unused_dummy_error_path_route_' + name + '/:error';
|
27002
27047
|
createRoute(this, name + '_loading', { resetNamespace: options.resetNamespace });
|
27003
|
-
createRoute(this, name + '_error', { path: dummyErrorRoute });
|
27048
|
+
createRoute(this, name + '_error', { resetNamespace: options.resetNamespace, path: dummyErrorRoute });
|
27004
27049
|
}
|
27005
27050
|
|
27006
27051
|
var localFullName = 'application';
|
@@ -27775,7 +27820,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
|
|
27775
27820
|
This action is called when one or more query params have changed. Bubbles.
|
27776
27821
|
@method queryParamsDidChange
|
27777
27822
|
@param changed {Object} Keys are names of query params that have changed.
|
27778
|
-
@param totalPresent {
|
27823
|
+
@param totalPresent {Object} Keys are names of query params that are currently set.
|
27779
27824
|
@param removed {Object} Keys are names of query params that have been removed.
|
27780
27825
|
@returns {boolean}
|
27781
27826
|
@private
|
@@ -28788,7 +28833,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
|
|
28788
28833
|
The string values provided for the template name, and controller
|
28789
28834
|
will eventually pass through to the resolver for lookup. See
|
28790
28835
|
Ember.Resolver for how these are mapped to JavaScript objects in your
|
28791
|
-
application.
|
28836
|
+
application. The template to render into needs to be related to either the
|
28837
|
+
current route or one of its ancestors.
|
28792
28838
|
Not all options need to be passed to `render`. Default values will be used
|
28793
28839
|
based on the name of the route specified in the router or the Route's
|
28794
28840
|
`controllerName` and `templateName` properties.
|
@@ -29168,13 +29214,9 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
|
|
29168
29214
|
|
29169
29215
|
@private
|
29170
29216
|
*/
|
29171
|
-
function prefixRouteNameArg() {
|
29172
|
-
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
29173
|
-
args[_key2] = arguments[_key2];
|
29174
|
-
}
|
29175
|
-
|
29217
|
+
function prefixRouteNameArg(route, args) {
|
29176
29218
|
var routeName = args[0];
|
29177
|
-
var owner = _containerOwner.getOwner(
|
29219
|
+
var owner = _containerOwner.getOwner(route);
|
29178
29220
|
var prefix = owner.mountPoint;
|
29179
29221
|
|
29180
29222
|
// only alter the routeName if it's actually referencing a route.
|
@@ -29202,19 +29244,19 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
|
|
29202
29244
|
if (true) {
|
29203
29245
|
Route.reopen({
|
29204
29246
|
replaceWith: function () {
|
29205
|
-
for (var
|
29206
|
-
args[
|
29247
|
+
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
29248
|
+
args[_key2] = arguments[_key2];
|
29207
29249
|
}
|
29208
29250
|
|
29209
|
-
return this._super.apply(this, prefixRouteNameArg
|
29251
|
+
return this._super.apply(this, prefixRouteNameArg(this, args));
|
29210
29252
|
},
|
29211
29253
|
|
29212
29254
|
transitionTo: function () {
|
29213
|
-
for (var
|
29214
|
-
args[
|
29255
|
+
for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
29256
|
+
args[_key3] = arguments[_key3];
|
29215
29257
|
}
|
29216
29258
|
|
29217
|
-
return this._super.apply(this, prefixRouteNameArg
|
29259
|
+
return this._super.apply(this, prefixRouteNameArg(this, args));
|
29218
29260
|
},
|
29219
29261
|
|
29220
29262
|
modelFor: function (_routeName) {
|
@@ -29229,8 +29271,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
|
|
29229
29271
|
routeName = _routeName;
|
29230
29272
|
}
|
29231
29273
|
|
29232
|
-
for (var
|
29233
|
-
args[
|
29274
|
+
for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
|
29275
|
+
args[_key4 - 1] = arguments[_key4];
|
29234
29276
|
}
|
29235
29277
|
|
29236
29278
|
return this._super.apply(this, [routeName].concat(args));
|
@@ -29366,6 +29408,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
|
|
29366
29408
|
this._engineInstances = new _emberMetalEmpty_object.default();
|
29367
29409
|
this._engineInfoByRoute = new _emberMetalEmpty_object.default();
|
29368
29410
|
}
|
29411
|
+
|
29412
|
+
// avoid shaping issues with checks during `_setOutlets`
|
29413
|
+
this.isDestroyed = false;
|
29414
|
+
this.isDestroying = false;
|
29369
29415
|
},
|
29370
29416
|
|
29371
29417
|
/*
|
@@ -29489,6 +29535,13 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
|
|
29489
29535
|
},
|
29490
29536
|
|
29491
29537
|
_setOutlets: function () {
|
29538
|
+
// This is triggered async during Ember.Route#willDestroy.
|
29539
|
+
// If the router is also being destroyed we do not want to
|
29540
|
+
// to create another this._toplevelView (and leak the renderer)
|
29541
|
+
if (this.isDestroying || this.isDestroyed) {
|
29542
|
+
return;
|
29543
|
+
}
|
29544
|
+
|
29492
29545
|
var handlerInfos = this.router.currentHandlerInfos;
|
29493
29546
|
var route = undefined;
|
29494
29547
|
var defaultParentState = undefined;
|
@@ -29672,12 +29725,6 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
|
|
29672
29725
|
},
|
29673
29726
|
|
29674
29727
|
willDestroy: function () {
|
29675
|
-
if (this._toplevelView) {
|
29676
|
-
this._toplevelView.destroy();
|
29677
|
-
this._toplevelView = null;
|
29678
|
-
}
|
29679
|
-
this._super.apply(this, arguments);
|
29680
|
-
|
29681
29728
|
if (true) {
|
29682
29729
|
var instances = this._engineInstances;
|
29683
29730
|
for (var _name in instances) {
|
@@ -29687,6 +29734,12 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
|
|
29687
29734
|
}
|
29688
29735
|
}
|
29689
29736
|
|
29737
|
+
if (this._toplevelView) {
|
29738
|
+
this._toplevelView.destroy();
|
29739
|
+
this._toplevelView = null;
|
29740
|
+
}
|
29741
|
+
this._super.apply(this, arguments);
|
29742
|
+
|
29690
29743
|
this.reset();
|
29691
29744
|
},
|
29692
29745
|
|
@@ -30250,16 +30303,24 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
|
|
30250
30303
|
}
|
30251
30304
|
}
|
30252
30305
|
|
30253
|
-
|
30254
|
-
|
30255
|
-
|
30256
|
-
// First, try a named loading state, e.g. 'foo_loading'
|
30257
|
-
childName = namespace + targetChildRouteName + '_' + name;
|
30306
|
+
// First, try a named loading state of the route, e.g. 'foo_loading'
|
30307
|
+
childName = originatingChildRouteName + '_' + name;
|
30258
30308
|
if (routeHasBeenDefined(router, childName)) {
|
30259
30309
|
return childName;
|
30260
30310
|
}
|
30261
30311
|
|
30262
|
-
// Second, try general loading state, e.g. 'loading'
|
30312
|
+
// Second, try general loading state of the parent, e.g. 'loading'
|
30313
|
+
var originatingChildRouteParts = originatingChildRouteName.split('.').slice(0, -1);
|
30314
|
+
var namespace = undefined;
|
30315
|
+
|
30316
|
+
// If there is a namespace on the route, then we use that, otherwise we use
|
30317
|
+
// the parent route as the namespace.
|
30318
|
+
if (originatingChildRouteParts.length) {
|
30319
|
+
namespace = originatingChildRouteParts.join('.') + '.';
|
30320
|
+
} else {
|
30321
|
+
namespace = parentRoute.routeName === 'application' ? '' : parentRoute.routeName + '.';
|
30322
|
+
}
|
30323
|
+
|
30263
30324
|
childName = namespace + name;
|
30264
30325
|
if (routeHasBeenDefined(router, childName)) {
|
30265
30326
|
return childName;
|
@@ -30289,7 +30350,7 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
|
|
30289
30350
|
handlerInfo = handlerInfos[i];
|
30290
30351
|
handler = handlerInfo.handler;
|
30291
30352
|
|
30292
|
-
if (handler.actions && handler.actions[name]) {
|
30353
|
+
if (handler && handler.actions && handler.actions[name]) {
|
30293
30354
|
if (handler.actions[name].apply(handler, args) === true) {
|
30294
30355
|
eventWasHandled = true;
|
30295
30356
|
} else {
|
@@ -33854,7 +33915,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
33854
33915
|
If no `startAt` argument is given, the starting location to
|
33855
33916
|
search is 0. If it's negative, searches from the index of
|
33856
33917
|
`this.length + startAt` by asc.
|
33857
|
-
|
33918
|
+
```javascript
|
33858
33919
|
[1, 2, 3].includes(2); // true
|
33859
33920
|
[1, 2, 3].includes(4); // false
|
33860
33921
|
[1, 2, 3].includes(3, 2); // true
|
@@ -33864,7 +33925,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
33864
33925
|
[1, 2, 3].includes(1, -4); // true
|
33865
33926
|
[1, 2, NaN].includes(NaN); // true
|
33866
33927
|
```
|
33867
|
-
|
33928
|
+
@method includes
|
33868
33929
|
@param {Object} obj The object to search for.
|
33869
33930
|
@param {Number} startAt optional starting location to search, default 0
|
33870
33931
|
@return {Boolean} `true` if object is found in the array.
|
@@ -34701,7 +34762,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
34701
34762
|
|
34702
34763
|
/**
|
34703
34764
|
Sets the value on the named property for each member. This is more
|
34704
|
-
|
34765
|
+
ergonomic than using other methods defined on this helper. If the object
|
34705
34766
|
implements Ember.Observable, the value will be changed to `set(),` otherwise
|
34706
34767
|
it will be set directly. `null` objects are skipped.
|
34707
34768
|
@method setEach
|
@@ -35456,14 +35517,14 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
35456
35517
|
Enumerable.reopen({
|
35457
35518
|
/**
|
35458
35519
|
Returns `true` if the passed object can be found in the enumerable.
|
35459
|
-
|
35520
|
+
```javascript
|
35460
35521
|
[1, 2, 3].includes(2); // true
|
35461
35522
|
[1, 2, 3].includes(4); // false
|
35462
35523
|
[1, 2, undefined].includes(undefined); // true
|
35463
35524
|
[1, 2, null].includes(null); // true
|
35464
35525
|
[1, 2, NaN].includes(NaN); // true
|
35465
35526
|
```
|
35466
|
-
|
35527
|
+
@method includes
|
35467
35528
|
@param {Object} obj The object to search for.
|
35468
35529
|
@return {Boolean} `true` if object is found in the enumerable.
|
35469
35530
|
@public
|
@@ -37662,11 +37723,11 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
37662
37723
|
},
|
37663
37724
|
|
37664
37725
|
arrangedContentArrayWillChange: function (item, idx, removedCnt, addedCnt) {
|
37665
|
-
|
37726
|
+
this.arrayContentWillChange(idx, removedCnt, addedCnt);
|
37666
37727
|
},
|
37667
37728
|
|
37668
37729
|
arrangedContentArrayDidChange: function (item, idx, removedCnt, addedCnt) {
|
37669
|
-
|
37730
|
+
this.arrayContentDidChange(idx, removedCnt, addedCnt);
|
37670
37731
|
},
|
37671
37732
|
|
37672
37733
|
init: function () {
|
@@ -37813,19 +37874,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal/debug', 'emb
|
|
37813
37874
|
|
37814
37875
|
finishPartial(this, m);
|
37815
37876
|
|
37816
|
-
|
37817
|
-
this.init();
|
37818
|
-
} else if (arguments.length === 1) {
|
37819
|
-
this.init(arguments[0]);
|
37820
|
-
} else {
|
37821
|
-
// v8 bug potentially incorrectly deopts this function: https://code.google.com/p/v8/issues/detail?id=3709
|
37822
|
-
// we may want to keep this around till this ages out on mobile
|
37823
|
-
var args = new Array(arguments.length);
|
37824
|
-
for (var x = 0; x < arguments.length; x++) {
|
37825
|
-
args[x] = arguments[x];
|
37826
|
-
}
|
37827
|
-
this.init.apply(this, args);
|
37828
|
-
}
|
37877
|
+
this.init.apply(this, arguments);
|
37829
37878
|
|
37830
37879
|
this[POST_INIT]();
|
37831
37880
|
|
@@ -40379,6 +40428,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-testing/test/helpers', 'ember
|
|
40379
40428
|
|
40380
40429
|
@method click
|
40381
40430
|
@param {String} selector jQuery selector for finding element on the DOM
|
40431
|
+
@param {Object} context A DOM Element, Document, or jQuery to use as context
|
40382
40432
|
@return {RSVP.Promise}
|
40383
40433
|
@public
|
40384
40434
|
*/
|
@@ -40624,7 +40674,7 @@ enifed('ember-testing/helpers/fill_in', ['exports', 'ember-testing/events'], fun
|
|
40624
40674
|
el = $el[0];
|
40625
40675
|
_emberTestingEvents.focus(el);
|
40626
40676
|
|
40627
|
-
$el.val(text);
|
40677
|
+
$el.eq(0).val(text);
|
40628
40678
|
_emberTestingEvents.fireEvent(el, 'input');
|
40629
40679
|
_emberTestingEvents.fireEvent(el, 'change');
|
40630
40680
|
|
@@ -42838,7 +42888,7 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-metal/debug', 'embe
|
|
42838
42888
|
}
|
42839
42889
|
|
42840
42890
|
}, _Mixin$create[_emberRuntimeSystemCore_object.POST_INIT] = function () {
|
42841
|
-
this._super
|
42891
|
+
this._super();
|
42842
42892
|
|
42843
42893
|
_emberMetalDebug.assert('You must call `this._super(...arguments);` when implementing `init` in a component. Please update ' + this + ' to call `this._super` from `init`.', this[INIT_WAS_CALLED]);
|
42844
42894
|
|
@@ -43445,23 +43495,6 @@ enifed('ember-views/system/lookup_partial', ['exports', 'ember-metal/debug', 'em
|
|
43445
43495
|
return env.owner.lookup('template:' + underscored) || env.owner.lookup('template:' + name);
|
43446
43496
|
}
|
43447
43497
|
});
|
43448
|
-
enifed('ember-views/system/platform', ['exports', 'ember-environment'], function (exports, _emberEnvironment) {
|
43449
|
-
'use strict';
|
43450
|
-
|
43451
|
-
// IE 6/7 have bugs around setting names on inputs during creation.
|
43452
|
-
// From http://msdn.microsoft.com/en-us/library/ie/ms536389(v=vs.85).aspx:
|
43453
|
-
// "To include the NAME attribute at run time on objects created with the createElement method, use the eTag."
|
43454
|
-
var canSetNameOnInputs = _emberEnvironment.environment.hasDOM && (function () {
|
43455
|
-
var div = document.createElement('div');
|
43456
|
-
var el = document.createElement('input');
|
43457
|
-
|
43458
|
-
el.setAttribute('name', 'foo');
|
43459
|
-
div.appendChild(el);
|
43460
|
-
|
43461
|
-
return !!div.innerHTML.match('foo');
|
43462
|
-
})();
|
43463
|
-
exports.canSetNameOnInputs = canSetNameOnInputs;
|
43464
|
-
});
|
43465
43498
|
enifed('ember-views/system/utils', ['exports'], function (exports) {
|
43466
43499
|
/**
|
43467
43500
|
@module ember
|
@@ -43530,17 +43563,26 @@ enifed('ember-views/system/utils', ['exports'], function (exports) {
|
|
43530
43563
|
return range.getBoundingClientRect();
|
43531
43564
|
}
|
43532
43565
|
});
|
43533
|
-
enifed('ember-views/utils/lookup-component', ['exports'], function (exports) {
|
43566
|
+
enifed('ember-views/utils/lookup-component', ['exports', 'container/registry'], function (exports, _containerRegistry) {
|
43534
43567
|
'use strict';
|
43535
43568
|
|
43536
43569
|
exports.default = lookupComponent;
|
43570
|
+
|
43571
|
+
var _templateObject = _taggedTemplateLiteralLoose(['component:-default'], ['component:-default']);
|
43572
|
+
|
43573
|
+
function _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }
|
43574
|
+
|
43537
43575
|
function lookupComponentPair(componentLookup, owner, name, options) {
|
43538
43576
|
var component = componentLookup.componentFor(name, owner, options);
|
43539
43577
|
var layout = componentLookup.layoutFor(name, owner, options);
|
43540
|
-
|
43541
|
-
|
43542
|
-
|
43543
|
-
|
43578
|
+
|
43579
|
+
var result = { layout: layout, component: component };
|
43580
|
+
|
43581
|
+
if (layout && !component) {
|
43582
|
+
result.component = owner._lookupFactory(_containerRegistry.privatize(_templateObject));
|
43583
|
+
}
|
43584
|
+
|
43585
|
+
return result;
|
43544
43586
|
}
|
43545
43587
|
|
43546
43588
|
function lookupComponent(owner, name, options) {
|
@@ -43805,7 +43847,7 @@ enifed('ember-views/views/states/has_element', ['exports', 'ember-views/views/st
|
|
43805
43847
|
},
|
43806
43848
|
|
43807
43849
|
destroy: function (view) {
|
43808
|
-
view.renderer.remove(view
|
43850
|
+
view.renderer.remove(view);
|
43809
43851
|
},
|
43810
43852
|
|
43811
43853
|
// Handle events from `Ember.EventDispatcher`
|
@@ -44128,7 +44170,7 @@ enifed('ember-views/views/view', ['exports', 'ember-views/system/ext', 'ember-vi
|
|
44128
44170
|
```
|
44129
44171
|
|
44130
44172
|
If the return value of an `attributeBindings` monitored property is a boolean
|
44131
|
-
the
|
44173
|
+
the attribute will be present or absent depending on the value:
|
44132
44174
|
|
44133
44175
|
```javascript
|
44134
44176
|
MyTextInput = Ember.View.extend({
|
@@ -44141,7 +44183,7 @@ enifed('ember-views/views/view', ['exports', 'ember-views/system/ext', 'ember-vi
|
|
44141
44183
|
Will result in a view instance with an HTML representation of:
|
44142
44184
|
|
44143
44185
|
```html
|
44144
|
-
<input id="ember1" class="ember-view"
|
44186
|
+
<input id="ember1" class="ember-view" />
|
44145
44187
|
```
|
44146
44188
|
|
44147
44189
|
`attributeBindings` can refer to computed properties:
|
@@ -44450,7 +44492,7 @@ enifed('ember/index', ['exports', 'require', 'ember-metal', 'ember-runtime', 'em
|
|
44450
44492
|
enifed("ember/version", ["exports"], function (exports) {
|
44451
44493
|
"use strict";
|
44452
44494
|
|
44453
|
-
exports.default = "2.8.0
|
44495
|
+
exports.default = "2.8.0";
|
44454
44496
|
});
|
44455
44497
|
enifed('htmlbars-runtime', ['exports', 'htmlbars-runtime/hooks', 'htmlbars-runtime/render', 'htmlbars-util/morph-utils', 'htmlbars-util/template-utils'], function (exports, _htmlbarsRuntimeHooks, _htmlbarsRuntimeRender, _htmlbarsUtilMorphUtils, _htmlbarsUtilTemplateUtils) {
|
44456
44498
|
'use strict';
|
@@ -47659,11 +47701,145 @@ enifed("morph-range/utils", ["exports"], function (exports) {
|
|
47659
47701
|
} while (node);
|
47660
47702
|
}
|
47661
47703
|
});
|
47662
|
-
enifed(
|
47663
|
-
|
47704
|
+
enifed("route-recognizer", ["exports"], function (exports) {
|
47705
|
+
"use strict";
|
47706
|
+
|
47707
|
+
function Target(path, matcher, delegate) {
|
47708
|
+
this.path = path;
|
47709
|
+
this.matcher = matcher;
|
47710
|
+
this.delegate = delegate;
|
47711
|
+
}
|
47712
|
+
|
47713
|
+
Target.prototype = {
|
47714
|
+
to: function (target, callback) {
|
47715
|
+
var delegate = this.delegate;
|
47716
|
+
|
47717
|
+
if (delegate && delegate.willAddRoute) {
|
47718
|
+
target = delegate.willAddRoute(this.matcher.target, target);
|
47719
|
+
}
|
47720
|
+
|
47721
|
+
this.matcher.add(this.path, target);
|
47722
|
+
|
47723
|
+
if (callback) {
|
47724
|
+
if (callback.length === 0) {
|
47725
|
+
throw new Error("You must have an argument in the function passed to `to`");
|
47726
|
+
}
|
47727
|
+
this.matcher.addChild(this.path, target, callback, this.delegate);
|
47728
|
+
}
|
47729
|
+
return this;
|
47730
|
+
}
|
47731
|
+
};
|
47732
|
+
|
47733
|
+
function Matcher(target) {
|
47734
|
+
this.routes = {};
|
47735
|
+
this.children = {};
|
47736
|
+
this.target = target;
|
47737
|
+
}
|
47738
|
+
|
47739
|
+
Matcher.prototype = {
|
47740
|
+
add: function (path, handler) {
|
47741
|
+
this.routes[path] = handler;
|
47742
|
+
},
|
47743
|
+
|
47744
|
+
addChild: function (path, target, callback, delegate) {
|
47745
|
+
var matcher = new Matcher(target);
|
47746
|
+
this.children[path] = matcher;
|
47747
|
+
|
47748
|
+
var match = generateMatch(path, matcher, delegate);
|
47749
|
+
|
47750
|
+
if (delegate && delegate.contextEntered) {
|
47751
|
+
delegate.contextEntered(target, match);
|
47752
|
+
}
|
47753
|
+
|
47754
|
+
callback(match);
|
47755
|
+
}
|
47756
|
+
};
|
47757
|
+
|
47758
|
+
function generateMatch(startingPath, matcher, delegate) {
|
47759
|
+
return function (path, nestedCallback) {
|
47760
|
+
var fullPath = startingPath + path;
|
47761
|
+
|
47762
|
+
if (nestedCallback) {
|
47763
|
+
nestedCallback(generateMatch(fullPath, matcher, delegate));
|
47764
|
+
} else {
|
47765
|
+
return new Target(startingPath + path, matcher, delegate);
|
47766
|
+
}
|
47767
|
+
};
|
47768
|
+
}
|
47769
|
+
|
47770
|
+
function addRoute(routeArray, path, handler) {
|
47771
|
+
var len = 0;
|
47772
|
+
for (var i = 0; i < routeArray.length; i++) {
|
47773
|
+
len += routeArray[i].path.length;
|
47774
|
+
}
|
47775
|
+
|
47776
|
+
path = path.substr(len);
|
47777
|
+
var route = { path: path, handler: handler };
|
47778
|
+
routeArray.push(route);
|
47779
|
+
}
|
47780
|
+
|
47781
|
+
function eachRoute(baseRoute, matcher, callback, binding) {
|
47782
|
+
var routes = matcher.routes;
|
47783
|
+
|
47784
|
+
for (var path in routes) {
|
47785
|
+
if (routes.hasOwnProperty(path)) {
|
47786
|
+
var routeArray = baseRoute.slice();
|
47787
|
+
addRoute(routeArray, path, routes[path]);
|
47788
|
+
|
47789
|
+
if (matcher.children[path]) {
|
47790
|
+
eachRoute(routeArray, matcher.children[path], callback, binding);
|
47791
|
+
} else {
|
47792
|
+
callback.call(binding, routeArray);
|
47793
|
+
}
|
47794
|
+
}
|
47795
|
+
}
|
47796
|
+
}
|
47797
|
+
|
47798
|
+
function map(callback, addRouteCallback) {
|
47799
|
+
var matcher = new Matcher();
|
47664
47800
|
|
47665
|
-
|
47666
|
-
|
47801
|
+
callback(generateMatch("", matcher, this.delegate));
|
47802
|
+
|
47803
|
+
eachRoute([], matcher, function (route) {
|
47804
|
+
if (addRouteCallback) {
|
47805
|
+
addRouteCallback(this, route);
|
47806
|
+
} else {
|
47807
|
+
this.add(route);
|
47808
|
+
}
|
47809
|
+
}, this);
|
47810
|
+
}
|
47811
|
+
|
47812
|
+
// Normalizes percent-encoded values in `path` to upper-case and decodes percent-encoded
|
47813
|
+
// values that are not reserved (i.e., unicode characters, emoji, etc). The reserved
|
47814
|
+
// chars are "/" and "%".
|
47815
|
+
// Safe to call multiple times on the same path.
|
47816
|
+
function normalizePath(path) {
|
47817
|
+
return path.split('/').map(normalizeSegment).join('/');
|
47818
|
+
}
|
47819
|
+
|
47820
|
+
// We want to ensure the characters "%" and "/" remain in percent-encoded
|
47821
|
+
// form when normalizing paths, so replace them with their encoded form after
|
47822
|
+
// decoding the rest of the path
|
47823
|
+
var SEGMENT_RESERVED_CHARS = /%|\//g;
|
47824
|
+
function normalizeSegment(segment) {
|
47825
|
+
return decodeURIComponent(segment).replace(SEGMENT_RESERVED_CHARS, encodeURIComponent);
|
47826
|
+
}
|
47827
|
+
|
47828
|
+
// We do not want to encode these characters when generating dynamic path segments
|
47829
|
+
// See https://tools.ietf.org/html/rfc3986#section-3.3
|
47830
|
+
// sub-delims: "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "="
|
47831
|
+
// others allowed by RFC 3986: ":", "@"
|
47832
|
+
//
|
47833
|
+
// First encode the entire path segment, then decode any of the encoded special chars.
|
47834
|
+
//
|
47835
|
+
// The chars "!", "'", "(", ")", "*" do not get changed by `encodeURIComponent`,
|
47836
|
+
// so the possible encoded chars are:
|
47837
|
+
// ['%24', '%26', '%2B', '%2C', '%3B', '%3D', '%3A', '%40'].
|
47838
|
+
var PATH_SEGMENT_ENCODINGS = /%(?:24|26|2B|2C|3B|3D|3A|40)/g;
|
47839
|
+
|
47840
|
+
function encodePathSegment(str) {
|
47841
|
+
return encodeURIComponent(str).replace(PATH_SEGMENT_ENCODINGS, decodeURIComponent);
|
47842
|
+
}
|
47667
47843
|
|
47668
47844
|
var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
|
47669
47845
|
|
@@ -47729,7 +47905,7 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
47729
47905
|
|
47730
47906
|
generate: function (params) {
|
47731
47907
|
if (RouteRecognizer.ENCODE_AND_DECODE_PATH_SEGMENTS) {
|
47732
|
-
return
|
47908
|
+
return encodePathSegment(params[this.name]);
|
47733
47909
|
} else {
|
47734
47910
|
return params[this.name];
|
47735
47911
|
}
|
@@ -47769,7 +47945,7 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
47769
47945
|
// The `names` will be populated with the paramter name for each dynamic/star
|
47770
47946
|
// segment. `shouldDecodes` will be populated with a boolean for each dyanamic/star
|
47771
47947
|
// segment, indicating whether it should be decoded during recognition.
|
47772
|
-
function parse(route, names,
|
47948
|
+
function parse(route, names, types, shouldDecodes) {
|
47773
47949
|
// normalize route as not starting with a "/". Recognition will
|
47774
47950
|
// also normalize.
|
47775
47951
|
if (route.charAt(0) === "/") {
|
@@ -47779,27 +47955,6 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
47779
47955
|
var segments = route.split("/");
|
47780
47956
|
var results = new Array(segments.length);
|
47781
47957
|
|
47782
|
-
// A routes has specificity determined by the order that its different segments
|
47783
|
-
// appear in. This system mirrors how the magnitude of numbers written as strings
|
47784
|
-
// works.
|
47785
|
-
// Consider a number written as: "abc". An example would be "200". Any other number written
|
47786
|
-
// "xyz" will be smaller than "abc" so long as `a > x`. For instance, "199" is smaller
|
47787
|
-
// then "200", even though "y" and "z" (which are both 9) are larger than "0" (the value
|
47788
|
-
// of (`b` and `c`). This is because the leading symbol, "2", is larger than the other
|
47789
|
-
// leading symbol, "1".
|
47790
|
-
// The rule is that symbols to the left carry more weight than symbols to the right
|
47791
|
-
// when a number is written out as a string. In the above strings, the leading digit
|
47792
|
-
// represents how many 100's are in the number, and it carries more weight than the middle
|
47793
|
-
// number which represents how many 10's are in the number.
|
47794
|
-
// This system of number magnitude works well for route specificity, too. A route written as
|
47795
|
-
// `a/b/c` will be more specific than `x/y/z` as long as `a` is more specific than
|
47796
|
-
// `x`, irrespective of the other parts.
|
47797
|
-
// Because of this similarity, we assign each type of segment a number value written as a
|
47798
|
-
// string. We can find the specificity of compound routes by concatenating these strings
|
47799
|
-
// together, from left to right. After we have looped through all of the segments,
|
47800
|
-
// we convert the string to a number.
|
47801
|
-
specificity.val = '';
|
47802
|
-
|
47803
47958
|
for (var i = 0; i < segments.length; i++) {
|
47804
47959
|
var segment = segments[i],
|
47805
47960
|
match;
|
@@ -47808,26 +47963,27 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
47808
47963
|
results[i] = new DynamicSegment(match[1]);
|
47809
47964
|
names.push(match[1]);
|
47810
47965
|
shouldDecodes.push(true);
|
47811
|
-
|
47966
|
+
types.dynamics++;
|
47812
47967
|
} else if (match = segment.match(/^\*([^\/]+)$/)) {
|
47813
47968
|
results[i] = new StarSegment(match[1]);
|
47814
47969
|
names.push(match[1]);
|
47815
47970
|
shouldDecodes.push(false);
|
47816
|
-
|
47971
|
+
types.stars++;
|
47817
47972
|
} else if (segment === "") {
|
47818
47973
|
results[i] = new EpsilonSegment();
|
47819
|
-
specificity.val += '2';
|
47820
47974
|
} else {
|
47821
47975
|
results[i] = new StaticSegment(segment);
|
47822
|
-
|
47976
|
+
types.statics++;
|
47823
47977
|
}
|
47824
47978
|
}
|
47825
47979
|
|
47826
|
-
specificity.val = +specificity.val;
|
47827
|
-
|
47828
47980
|
return results;
|
47829
47981
|
}
|
47830
47982
|
|
47983
|
+
function isEqualCharSpec(specA, specB) {
|
47984
|
+
return specA.validChars === specB.validChars && specA.invalidChars === specB.invalidChars;
|
47985
|
+
}
|
47986
|
+
|
47831
47987
|
// A State has a character specification and (`charSpec`) and a list of possible
|
47832
47988
|
// subsequent states (`nextStates`).
|
47833
47989
|
//
|
@@ -47848,7 +48004,6 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
47848
48004
|
function State(charSpec) {
|
47849
48005
|
this.charSpec = charSpec;
|
47850
48006
|
this.nextStates = [];
|
47851
|
-
this.charSpecs = {};
|
47852
48007
|
this.regex = undefined;
|
47853
48008
|
this.handlers = undefined;
|
47854
48009
|
this.specificity = undefined;
|
@@ -47856,20 +48011,12 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
47856
48011
|
|
47857
48012
|
State.prototype = {
|
47858
48013
|
get: function (charSpec) {
|
47859
|
-
if (this.charSpecs[charSpec.validChars]) {
|
47860
|
-
return this.charSpecs[charSpec.validChars];
|
47861
|
-
}
|
47862
|
-
|
47863
48014
|
var nextStates = this.nextStates;
|
47864
48015
|
|
47865
48016
|
for (var i = 0; i < nextStates.length; i++) {
|
47866
48017
|
var child = nextStates[i];
|
47867
48018
|
|
47868
|
-
|
47869
|
-
isEqual = isEqual && child.charSpec.invalidChars === charSpec.invalidChars;
|
47870
|
-
|
47871
|
-
if (isEqual) {
|
47872
|
-
this.charSpecs[charSpec.validChars] = child;
|
48019
|
+
if (isEqualCharSpec(child.charSpec, charSpec)) {
|
47873
48020
|
return child;
|
47874
48021
|
}
|
47875
48022
|
}
|
@@ -47930,10 +48077,39 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
47930
48077
|
}
|
47931
48078
|
};
|
47932
48079
|
|
47933
|
-
//
|
48080
|
+
// This is a somewhat naive strategy, but should work in a lot of cases
|
48081
|
+
// A better strategy would properly resolve /posts/:id/new and /posts/edit/:id.
|
48082
|
+
//
|
48083
|
+
// This strategy generally prefers more static and less dynamic matching.
|
48084
|
+
// Specifically, it
|
48085
|
+
//
|
48086
|
+
// * prefers fewer stars to more, then
|
48087
|
+
// * prefers using stars for less of the match to more, then
|
48088
|
+
// * prefers fewer dynamic segments to more, then
|
48089
|
+
// * prefers more static segments to more
|
47934
48090
|
function sortSolutions(states) {
|
47935
48091
|
return states.sort(function (a, b) {
|
47936
|
-
|
48092
|
+
if (a.types.stars !== b.types.stars) {
|
48093
|
+
return a.types.stars - b.types.stars;
|
48094
|
+
}
|
48095
|
+
|
48096
|
+
if (a.types.stars) {
|
48097
|
+
if (a.types.statics !== b.types.statics) {
|
48098
|
+
return b.types.statics - a.types.statics;
|
48099
|
+
}
|
48100
|
+
if (a.types.dynamics !== b.types.dynamics) {
|
48101
|
+
return b.types.dynamics - a.types.dynamics;
|
48102
|
+
}
|
48103
|
+
}
|
48104
|
+
|
48105
|
+
if (a.types.dynamics !== b.types.dynamics) {
|
48106
|
+
return a.types.dynamics - b.types.dynamics;
|
48107
|
+
}
|
48108
|
+
if (a.types.statics !== b.types.statics) {
|
48109
|
+
return b.types.statics - a.types.statics;
|
48110
|
+
}
|
48111
|
+
|
48112
|
+
return 0;
|
47937
48113
|
});
|
47938
48114
|
}
|
47939
48115
|
|
@@ -48027,7 +48203,7 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
48027
48203
|
add: function (routes, options) {
|
48028
48204
|
var currentState = this.rootState,
|
48029
48205
|
regex = "^",
|
48030
|
-
|
48206
|
+
types = { statics: 0, dynamics: 0, stars: 0 },
|
48031
48207
|
handlers = new Array(routes.length),
|
48032
48208
|
allSegments = [],
|
48033
48209
|
name;
|
@@ -48039,7 +48215,7 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
48039
48215
|
names = [],
|
48040
48216
|
shouldDecodes = [];
|
48041
48217
|
|
48042
|
-
var segments = parse(route.path, names,
|
48218
|
+
var segments = parse(route.path, names, types, shouldDecodes);
|
48043
48219
|
|
48044
48220
|
allSegments = allSegments.concat(segments);
|
48045
48221
|
|
@@ -48071,7 +48247,7 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
48071
48247
|
|
48072
48248
|
currentState.handlers = handlers;
|
48073
48249
|
currentState.regex = new RegExp(regex + "$");
|
48074
|
-
currentState.
|
48250
|
+
currentState.types = types;
|
48075
48251
|
|
48076
48252
|
if (name = options && options.as) {
|
48077
48253
|
this.names[name] = {
|
@@ -48132,7 +48308,7 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
48132
48308
|
return output;
|
48133
48309
|
},
|
48134
48310
|
|
48135
|
-
generateQueryString: function (params
|
48311
|
+
generateQueryString: function (params) {
|
48136
48312
|
var pairs = [];
|
48137
48313
|
var keys = [];
|
48138
48314
|
for (var key in params) {
|
@@ -48201,7 +48377,6 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
48201
48377
|
var states = [this.rootState],
|
48202
48378
|
pathLen,
|
48203
48379
|
i,
|
48204
|
-
l,
|
48205
48380
|
queryStart,
|
48206
48381
|
queryParams = {},
|
48207
48382
|
hashStart,
|
@@ -48267,213 +48442,21 @@ enifed('route-recognizer', ['exports', 'route-recognizer/dsl', 'route-recognizer
|
|
48267
48442
|
}
|
48268
48443
|
};
|
48269
48444
|
|
48270
|
-
RouteRecognizer.prototype.map =
|
48445
|
+
RouteRecognizer.prototype.map = map;
|
48271
48446
|
|
48272
|
-
RouteRecognizer.VERSION = '0.2.
|
48447
|
+
RouteRecognizer.VERSION = '0.2.6';
|
48273
48448
|
|
48274
48449
|
// Set to false to opt-out of encoding and decoding path segments.
|
48275
48450
|
// See https://github.com/tildeio/route-recognizer/pull/55
|
48276
48451
|
RouteRecognizer.ENCODE_AND_DECODE_PATH_SEGMENTS = true;
|
48277
48452
|
|
48278
|
-
RouteRecognizer.Normalizer =
|
48279
|
-
|
48280
|
-
exports.default = RouteRecognizer;
|
48281
|
-
});
|
48282
|
-
enifed("route-recognizer/dsl", ["exports"], function (exports) {
|
48283
|
-
"use strict";
|
48284
|
-
|
48285
|
-
function Target(path, matcher, delegate) {
|
48286
|
-
this.path = path;
|
48287
|
-
this.matcher = matcher;
|
48288
|
-
this.delegate = delegate;
|
48289
|
-
}
|
48290
|
-
|
48291
|
-
Target.prototype = {
|
48292
|
-
to: function (target, callback) {
|
48293
|
-
var delegate = this.delegate;
|
48294
|
-
|
48295
|
-
if (delegate && delegate.willAddRoute) {
|
48296
|
-
target = delegate.willAddRoute(this.matcher.target, target);
|
48297
|
-
}
|
48298
|
-
|
48299
|
-
this.matcher.add(this.path, target);
|
48300
|
-
|
48301
|
-
if (callback) {
|
48302
|
-
if (callback.length === 0) {
|
48303
|
-
throw new Error("You must have an argument in the function passed to `to`");
|
48304
|
-
}
|
48305
|
-
this.matcher.addChild(this.path, target, callback, this.delegate);
|
48306
|
-
}
|
48307
|
-
return this;
|
48308
|
-
}
|
48309
|
-
};
|
48310
|
-
|
48311
|
-
function Matcher(target) {
|
48312
|
-
this.routes = {};
|
48313
|
-
this.children = {};
|
48314
|
-
this.target = target;
|
48315
|
-
}
|
48316
|
-
|
48317
|
-
Matcher.prototype = {
|
48318
|
-
add: function (path, handler) {
|
48319
|
-
this.routes[path] = handler;
|
48320
|
-
},
|
48321
|
-
|
48322
|
-
addChild: function (path, target, callback, delegate) {
|
48323
|
-
var matcher = new Matcher(target);
|
48324
|
-
this.children[path] = matcher;
|
48325
|
-
|
48326
|
-
var match = generateMatch(path, matcher, delegate);
|
48327
|
-
|
48328
|
-
if (delegate && delegate.contextEntered) {
|
48329
|
-
delegate.contextEntered(target, match);
|
48330
|
-
}
|
48331
|
-
|
48332
|
-
callback(match);
|
48333
|
-
}
|
48334
|
-
};
|
48335
|
-
|
48336
|
-
function generateMatch(startingPath, matcher, delegate) {
|
48337
|
-
return function (path, nestedCallback) {
|
48338
|
-
var fullPath = startingPath + path;
|
48339
|
-
|
48340
|
-
if (nestedCallback) {
|
48341
|
-
nestedCallback(generateMatch(fullPath, matcher, delegate));
|
48342
|
-
} else {
|
48343
|
-
return new Target(startingPath + path, matcher, delegate);
|
48344
|
-
}
|
48345
|
-
};
|
48346
|
-
}
|
48347
|
-
|
48348
|
-
function addRoute(routeArray, path, handler) {
|
48349
|
-
var len = 0;
|
48350
|
-
for (var i = 0; i < routeArray.length; i++) {
|
48351
|
-
len += routeArray[i].path.length;
|
48352
|
-
}
|
48353
|
-
|
48354
|
-
path = path.substr(len);
|
48355
|
-
var route = { path: path, handler: handler };
|
48356
|
-
routeArray.push(route);
|
48357
|
-
}
|
48358
|
-
|
48359
|
-
function eachRoute(baseRoute, matcher, callback, binding) {
|
48360
|
-
var routes = matcher.routes;
|
48361
|
-
|
48362
|
-
for (var path in routes) {
|
48363
|
-
if (routes.hasOwnProperty(path)) {
|
48364
|
-
var routeArray = baseRoute.slice();
|
48365
|
-
addRoute(routeArray, path, routes[path]);
|
48366
|
-
|
48367
|
-
if (matcher.children[path]) {
|
48368
|
-
eachRoute(routeArray, matcher.children[path], callback, binding);
|
48369
|
-
} else {
|
48370
|
-
callback.call(binding, routeArray);
|
48371
|
-
}
|
48372
|
-
}
|
48373
|
-
}
|
48374
|
-
}
|
48375
|
-
|
48376
|
-
exports.default = function (callback, addRouteCallback) {
|
48377
|
-
var matcher = new Matcher();
|
48378
|
-
|
48379
|
-
callback(generateMatch("", matcher, this.delegate));
|
48380
|
-
|
48381
|
-
eachRoute([], matcher, function (route) {
|
48382
|
-
if (addRouteCallback) {
|
48383
|
-
addRouteCallback(this, route);
|
48384
|
-
} else {
|
48385
|
-
this.add(route);
|
48386
|
-
}
|
48387
|
-
}, this);
|
48388
|
-
};
|
48389
|
-
});
|
48390
|
-
enifed('route-recognizer/normalizer', ['exports'], function (exports) {
|
48391
|
-
// Match percent-encoded values (e.g. %3a, %3A, %25)
|
48392
|
-
'use strict';
|
48393
|
-
|
48394
|
-
var PERCENT_ENCODED_VALUES = /%[a-fA-F0-9]{2}/g;
|
48395
|
-
|
48396
|
-
function toUpper(str) {
|
48397
|
-
return str.toUpperCase();
|
48398
|
-
}
|
48399
|
-
|
48400
|
-
// Turn percent-encoded values to upper case ("%3a" -> "%3A")
|
48401
|
-
function percentEncodedValuesToUpper(string) {
|
48402
|
-
return string.replace(PERCENT_ENCODED_VALUES, toUpper);
|
48403
|
-
}
|
48404
|
-
|
48405
|
-
// Normalizes percent-encoded values to upper-case and decodes percent-encoded
|
48406
|
-
// values that are not reserved (like unicode characters).
|
48407
|
-
// Safe to call multiple times on the same path.
|
48408
|
-
function normalizePath(path) {
|
48409
|
-
return path.split('/').map(normalizeSegment).join('/');
|
48410
|
-
}
|
48411
|
-
|
48412
|
-
function percentEncode(char) {
|
48413
|
-
return '%' + charToHex(char);
|
48414
|
-
}
|
48415
|
-
|
48416
|
-
function charToHex(char) {
|
48417
|
-
return char.charCodeAt(0).toString(16).toUpperCase();
|
48418
|
-
}
|
48419
|
-
|
48420
|
-
// Decodes percent-encoded values in the string except those
|
48421
|
-
// characters in `reservedHex`, where `reservedHex` is an array of 2-character
|
48422
|
-
// percent-encodings
|
48423
|
-
function decodeURIComponentExcept(string, reservedHex) {
|
48424
|
-
if (string.indexOf('%') === -1) {
|
48425
|
-
// If there is no percent char, there is no decoding that needs to
|
48426
|
-
// be done and we exit early
|
48427
|
-
return string;
|
48428
|
-
}
|
48429
|
-
string = percentEncodedValuesToUpper(string);
|
48430
|
-
|
48431
|
-
var result = '';
|
48432
|
-
var buffer = '';
|
48433
|
-
var idx = 0;
|
48434
|
-
while (idx < string.length) {
|
48435
|
-
var pIdx = string.indexOf('%', idx);
|
48436
|
-
|
48437
|
-
if (pIdx === -1) {
|
48438
|
-
// no percent char
|
48439
|
-
buffer += string.slice(idx);
|
48440
|
-
break;
|
48441
|
-
} else {
|
48442
|
-
// found percent char
|
48443
|
-
buffer += string.slice(idx, pIdx);
|
48444
|
-
idx = pIdx + 3;
|
48445
|
-
|
48446
|
-
var hex = string.slice(pIdx + 1, pIdx + 3);
|
48447
|
-
var encoded = '%' + hex;
|
48448
|
-
|
48449
|
-
if (reservedHex.indexOf(hex) === -1) {
|
48450
|
-
// encoded is not in reserved set, add to buffer
|
48451
|
-
buffer += encoded;
|
48452
|
-
} else {
|
48453
|
-
result += decodeURIComponent(buffer);
|
48454
|
-
buffer = '';
|
48455
|
-
result += encoded;
|
48456
|
-
}
|
48457
|
-
}
|
48458
|
-
}
|
48459
|
-
result += decodeURIComponent(buffer);
|
48460
|
-
return result;
|
48461
|
-
}
|
48462
|
-
|
48463
|
-
// Leave these characters in encoded state in segments
|
48464
|
-
var reservedSegmentChars = ['%', '/'];
|
48465
|
-
var reservedHex = reservedSegmentChars.map(charToHex);
|
48466
|
-
|
48467
|
-
function normalizeSegment(segment) {
|
48468
|
-
return decodeURIComponentExcept(segment, reservedHex);
|
48469
|
-
}
|
48470
|
-
|
48471
|
-
var Normalizer = {
|
48453
|
+
RouteRecognizer.Normalizer = {
|
48472
48454
|
normalizeSegment: normalizeSegment,
|
48473
|
-
normalizePath: normalizePath
|
48455
|
+
normalizePath: normalizePath,
|
48456
|
+
encodePathSegment: encodePathSegment
|
48474
48457
|
};
|
48475
48458
|
|
48476
|
-
exports.default =
|
48459
|
+
exports.default = RouteRecognizer;
|
48477
48460
|
});
|
48478
48461
|
enifed('router', ['exports', 'router/router'], function (exports, _routerRouter) {
|
48479
48462
|
'use strict';
|
@@ -48483,21 +48466,29 @@ enifed('router', ['exports', 'router/router'], function (exports, _routerRouter)
|
|
48483
48466
|
enifed('router/handler-info', ['exports', 'router/utils', 'rsvp/promise'], function (exports, _routerUtils, _rsvpPromise) {
|
48484
48467
|
'use strict';
|
48485
48468
|
|
48469
|
+
var DEFAULT_HANDLER = Object.freeze({});
|
48470
|
+
|
48486
48471
|
function HandlerInfo(_props) {
|
48487
48472
|
var props = _props || {};
|
48488
|
-
var name = props.name;
|
48489
48473
|
|
48490
|
-
//
|
48491
|
-
this.
|
48474
|
+
// Set a default handler to ensure consistent object shape
|
48475
|
+
this._handler = DEFAULT_HANDLER;
|
48492
48476
|
|
48493
|
-
|
48494
|
-
|
48495
|
-
|
48496
|
-
|
48497
|
-
|
48498
|
-
|
48499
|
-
//
|
48500
|
-
|
48477
|
+
if (props.handler) {
|
48478
|
+
var name = props.name;
|
48479
|
+
|
48480
|
+
// Setup a handlerPromise so that we can wait for asynchronously loaded handlers
|
48481
|
+
this.handlerPromise = _rsvpPromise.default.resolve(props.handler);
|
48482
|
+
|
48483
|
+
// Wait until the 'handler' property has been updated when chaining to a handler
|
48484
|
+
// that is a promise
|
48485
|
+
if (_routerUtils.isPromise(props.handler)) {
|
48486
|
+
this.handlerPromise = this.handlerPromise.then(_routerUtils.bind(this, this.updateHandler));
|
48487
|
+
props.handler = undefined;
|
48488
|
+
} else if (props.handler) {
|
48489
|
+
// Store the name of the handler on the handler for easy checks later
|
48490
|
+
props.handler._handlerName = name;
|
48491
|
+
}
|
48501
48492
|
}
|
48502
48493
|
|
48503
48494
|
_routerUtils.merge(this, props);
|
@@ -48506,7 +48497,30 @@ enifed('router/handler-info', ['exports', 'router/utils', 'rsvp/promise'], funct
|
|
48506
48497
|
|
48507
48498
|
HandlerInfo.prototype = {
|
48508
48499
|
name: null,
|
48509
|
-
|
48500
|
+
|
48501
|
+
getHandler: function () {},
|
48502
|
+
|
48503
|
+
fetchHandler: function () {
|
48504
|
+
var handler = this.getHandler(this.name);
|
48505
|
+
|
48506
|
+
// Setup a handlerPromise so that we can wait for asynchronously loaded handlers
|
48507
|
+
this.handlerPromise = _rsvpPromise.default.resolve(handler);
|
48508
|
+
|
48509
|
+
// Wait until the 'handler' property has been updated when chaining to a handler
|
48510
|
+
// that is a promise
|
48511
|
+
if (_routerUtils.isPromise(handler)) {
|
48512
|
+
this.handlerPromise = this.handlerPromise.then(_routerUtils.bind(this, this.updateHandler));
|
48513
|
+
} else if (handler) {
|
48514
|
+
// Store the name of the handler on the handler for easy checks later
|
48515
|
+
handler._handlerName = this.name;
|
48516
|
+
return this.handler = handler;
|
48517
|
+
}
|
48518
|
+
|
48519
|
+
return this.handler = undefined;
|
48520
|
+
},
|
48521
|
+
|
48522
|
+
_handlerPromise: undefined,
|
48523
|
+
|
48510
48524
|
params: null,
|
48511
48525
|
context: null,
|
48512
48526
|
|
@@ -48644,6 +48658,38 @@ enifed('router/handler-info', ['exports', 'router/utils', 'rsvp/promise'], funct
|
|
48644
48658
|
}
|
48645
48659
|
};
|
48646
48660
|
|
48661
|
+
Object.defineProperty(HandlerInfo.prototype, 'handler', {
|
48662
|
+
get: function () {
|
48663
|
+
// _handler could be set to either a handler object or undefined, so we
|
48664
|
+
// compare against a default reference to know when it's been set
|
48665
|
+
if (this._handler !== DEFAULT_HANDLER) {
|
48666
|
+
return this._handler;
|
48667
|
+
}
|
48668
|
+
|
48669
|
+
return this.fetchHandler();
|
48670
|
+
},
|
48671
|
+
|
48672
|
+
set: function (handler) {
|
48673
|
+
return this._handler = handler;
|
48674
|
+
}
|
48675
|
+
});
|
48676
|
+
|
48677
|
+
Object.defineProperty(HandlerInfo.prototype, 'handlerPromise', {
|
48678
|
+
get: function () {
|
48679
|
+
if (this._handlerPromise) {
|
48680
|
+
return this._handlerPromise;
|
48681
|
+
}
|
48682
|
+
|
48683
|
+
this.fetchHandler();
|
48684
|
+
|
48685
|
+
return this._handlerPromise;
|
48686
|
+
},
|
48687
|
+
|
48688
|
+
set: function (handlerPromise) {
|
48689
|
+
return this._handlerPromise = handlerPromise;
|
48690
|
+
}
|
48691
|
+
});
|
48692
|
+
|
48647
48693
|
function paramsMatch(a, b) {
|
48648
48694
|
if (!a ^ !b) {
|
48649
48695
|
// Only one is null.
|
@@ -48735,8 +48781,7 @@ enifed('router/handler-info/unresolved-handler-info-by-object', ['exports', 'rou
|
|
48735
48781
|
serialize: function (_model) {
|
48736
48782
|
var model = _model || this.context,
|
48737
48783
|
names = this.names,
|
48738
|
-
|
48739
|
-
serializer = this.serializer || handler && handler.serialize;
|
48784
|
+
serializer = this.serializer || this.handler && this.handler.serialize;
|
48740
48785
|
|
48741
48786
|
var object = {};
|
48742
48787
|
if (_routerUtils.isParam(model)) {
|
@@ -48808,6 +48853,13 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
48808
48853
|
this.delegate = options.delegate || this.delegate;
|
48809
48854
|
this.triggerEvent = options.triggerEvent || this.triggerEvent;
|
48810
48855
|
this.log = options.log || this.log;
|
48856
|
+
this.dslCallBacks = []; // NOTE: set by Ember
|
48857
|
+
this.state = undefined;
|
48858
|
+
this.activeTransition = undefined;
|
48859
|
+
this._changedQueryParams = undefined;
|
48860
|
+
this.oldState = undefined;
|
48861
|
+
this.currentHandlerInfos = undefined;
|
48862
|
+
this.state = undefined;
|
48811
48863
|
|
48812
48864
|
this.recognizer = new _routeRecognizer.default();
|
48813
48865
|
this.reset();
|
@@ -48930,7 +48982,7 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
48930
48982
|
// NOTE: this doesn't really belong here, but here
|
48931
48983
|
// it shall remain until our ES6 transpiler can
|
48932
48984
|
// handle cyclical deps.
|
48933
|
-
transitionByIntent: function (intent
|
48985
|
+
transitionByIntent: function (intent /*, isIntermediate*/) {
|
48934
48986
|
try {
|
48935
48987
|
return getTransitionByIntent.apply(this, arguments);
|
48936
48988
|
} catch (e) {
|
@@ -49001,11 +49053,11 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
49001
49053
|
that are no longer represented by the target route.
|
49002
49054
|
@param {String} name the name of the route
|
49003
49055
|
*/
|
49004
|
-
transitionTo: function (
|
49056
|
+
transitionTo: function () /*name*/{
|
49005
49057
|
return doTransition(this, arguments);
|
49006
49058
|
},
|
49007
49059
|
|
49008
|
-
intermediateTransitionTo: function (
|
49060
|
+
intermediateTransitionTo: function () /*name*/{
|
49009
49061
|
return doTransition(this, arguments, true);
|
49010
49062
|
},
|
49011
49063
|
|
@@ -49035,7 +49087,7 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
49035
49087
|
This method is intended primarily for use with `replaceState`.
|
49036
49088
|
@param {String} name the name of the route
|
49037
49089
|
*/
|
49038
|
-
replaceWith: function (
|
49090
|
+
replaceWith: function () /*name*/{
|
49039
49091
|
return doTransition(this, arguments).method('replace');
|
49040
49092
|
},
|
49041
49093
|
|
@@ -49082,12 +49134,7 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
49082
49134
|
isActiveIntent: function (handlerName, contexts, queryParams, _state) {
|
49083
49135
|
var state = _state || this.state,
|
49084
49136
|
targetHandlerInfos = state.handlerInfos,
|
49085
|
-
found = false,
|
49086
|
-
names,
|
49087
|
-
object,
|
49088
49137
|
handlerInfo,
|
49089
|
-
handlerObj,
|
49090
|
-
i,
|
49091
49138
|
len;
|
49092
49139
|
|
49093
49140
|
if (!targetHandlerInfos.length) {
|
@@ -49145,7 +49192,7 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
49145
49192
|
return this.isActiveIntent(handlerName, partitionedArgs[0], partitionedArgs[1]);
|
49146
49193
|
},
|
49147
49194
|
|
49148
|
-
trigger: function (
|
49195
|
+
trigger: function () /*name*/{
|
49149
49196
|
var args = _routerUtils.slice.call(arguments);
|
49150
49197
|
_routerUtils.trigger(this, this.currentHandlerInfos, false, args);
|
49151
49198
|
},
|
@@ -49343,7 +49390,8 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
49343
49390
|
updatedContext: [],
|
49344
49391
|
exited: [],
|
49345
49392
|
entered: [],
|
49346
|
-
unchanged: []
|
49393
|
+
unchanged: [],
|
49394
|
+
reset: undefined
|
49347
49395
|
};
|
49348
49396
|
|
49349
49397
|
var handlerChanged,
|
@@ -49382,7 +49430,7 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
49382
49430
|
return handlers;
|
49383
49431
|
}
|
49384
49432
|
|
49385
|
-
function updateURL(transition, state
|
49433
|
+
function updateURL(transition, state /*, inputUrl*/) {
|
49386
49434
|
var urlMethod = transition.urlMethod;
|
49387
49435
|
|
49388
49436
|
if (!urlMethod) {
|
@@ -49426,8 +49474,7 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
49426
49474
|
_routerUtils.log(transition.router, transition.sequence, "Resolved all models on destination route; finalizing transition.");
|
49427
49475
|
|
49428
49476
|
var router = transition.router,
|
49429
|
-
handlerInfos = newState.handlerInfos
|
49430
|
-
seq = transition.sequence;
|
49477
|
+
handlerInfos = newState.handlerInfos;
|
49431
49478
|
|
49432
49479
|
// Run all the necessary enter/setup/exit hooks
|
49433
49480
|
setupContexts(router, newState, transition);
|
@@ -49610,8 +49657,8 @@ enifed('router/router', ['exports', 'route-recognizer', 'rsvp/promise', 'router/
|
|
49610
49657
|
|
49611
49658
|
exports.default = Router;
|
49612
49659
|
});
|
49613
|
-
enifed(
|
49614
|
-
|
49660
|
+
enifed("router/transition-intent", ["exports"], function (exports) {
|
49661
|
+
"use strict";
|
49615
49662
|
|
49616
49663
|
function TransitionIntent(props) {
|
49617
49664
|
this.initialize(props);
|
@@ -49647,7 +49694,6 @@ enifed('router/transition-intent/named-transition-intent', ['exports', 'router/t
|
|
49647
49694
|
|
49648
49695
|
var partitionedArgs = _routerUtils.extractQueryParams([this.name].concat(this.contexts)),
|
49649
49696
|
pureArgs = partitionedArgs[0],
|
49650
|
-
queryParams = partitionedArgs[1],
|
49651
49697
|
handlers = recognizer.handlersFor(pureArgs[0]);
|
49652
49698
|
|
49653
49699
|
var targetRouteName = handlers[handlers.length - 1].handler;
|
@@ -49673,29 +49719,26 @@ enifed('router/transition-intent/named-transition-intent', ['exports', 'router/t
|
|
49673
49719
|
}
|
49674
49720
|
}
|
49675
49721
|
|
49676
|
-
var pivotHandlerFound = !this.pivotHandler;
|
49677
|
-
|
49678
49722
|
for (i = handlers.length - 1; i >= 0; --i) {
|
49679
49723
|
var result = handlers[i];
|
49680
49724
|
var name = result.handler;
|
49681
|
-
var handler = getHandler(name);
|
49682
49725
|
|
49683
49726
|
var oldHandlerInfo = oldState.handlerInfos[i];
|
49684
49727
|
var newHandlerInfo = null;
|
49685
49728
|
|
49686
49729
|
if (result.names.length > 0) {
|
49687
49730
|
if (i >= invalidateIndex) {
|
49688
|
-
newHandlerInfo = this.createParamHandlerInfo(name,
|
49731
|
+
newHandlerInfo = this.createParamHandlerInfo(name, getHandler, result.names, objects, oldHandlerInfo);
|
49689
49732
|
} else {
|
49690
49733
|
var serializer = getSerializer(name);
|
49691
|
-
newHandlerInfo = this.getHandlerInfoForDynamicSegment(name,
|
49734
|
+
newHandlerInfo = this.getHandlerInfoForDynamicSegment(name, getHandler, result.names, objects, oldHandlerInfo, targetRouteName, i, serializer);
|
49692
49735
|
}
|
49693
49736
|
} else {
|
49694
49737
|
// This route has no dynamic segment.
|
49695
49738
|
// Therefore treat as a param-based handlerInfo
|
49696
49739
|
// with empty params. This will cause the `model`
|
49697
49740
|
// hook to be called with empty params, which is desirable.
|
49698
|
-
newHandlerInfo = this.createParamHandlerInfo(name,
|
49741
|
+
newHandlerInfo = this.createParamHandlerInfo(name, getHandler, result.names, objects, oldHandlerInfo);
|
49699
49742
|
}
|
49700
49743
|
|
49701
49744
|
if (checkingIfActive) {
|
@@ -49742,20 +49785,18 @@ enifed('router/transition-intent/named-transition-intent', ['exports', 'router/t
|
|
49742
49785
|
invalidateChildren: function (handlerInfos, invalidateIndex) {
|
49743
49786
|
for (var i = invalidateIndex, l = handlerInfos.length; i < l; ++i) {
|
49744
49787
|
var handlerInfo = handlerInfos[i];
|
49745
|
-
handlerInfos[i] =
|
49788
|
+
handlerInfos[i] = handlerInfo.getUnresolved();
|
49746
49789
|
}
|
49747
49790
|
},
|
49748
49791
|
|
49749
|
-
getHandlerInfoForDynamicSegment: function (name,
|
49750
|
-
|
49751
|
-
var numNames = names.length;
|
49792
|
+
getHandlerInfoForDynamicSegment: function (name, getHandler, names, objects, oldHandlerInfo, targetRouteName, i, serializer) {
|
49752
49793
|
var objectToUse;
|
49753
49794
|
if (objects.length > 0) {
|
49754
49795
|
|
49755
49796
|
// Use the objects provided for this transition.
|
49756
49797
|
objectToUse = objects[objects.length - 1];
|
49757
49798
|
if (_routerUtils.isParam(objectToUse)) {
|
49758
|
-
return this.createParamHandlerInfo(name,
|
49799
|
+
return this.createParamHandlerInfo(name, getHandler, names, objects, oldHandlerInfo);
|
49759
49800
|
} else {
|
49760
49801
|
objects.pop();
|
49761
49802
|
}
|
@@ -49780,14 +49821,14 @@ enifed('router/transition-intent/named-transition-intent', ['exports', 'router/t
|
|
49780
49821
|
|
49781
49822
|
return _routerHandlerInfoFactory.default('object', {
|
49782
49823
|
name: name,
|
49783
|
-
|
49824
|
+
getHandler: getHandler,
|
49784
49825
|
serializer: serializer,
|
49785
49826
|
context: objectToUse,
|
49786
49827
|
names: names
|
49787
49828
|
});
|
49788
49829
|
},
|
49789
49830
|
|
49790
|
-
createParamHandlerInfo: function (name,
|
49831
|
+
createParamHandlerInfo: function (name, getHandler, names, objects, oldHandlerInfo) {
|
49791
49832
|
var params = {};
|
49792
49833
|
|
49793
49834
|
// Soak up all the provided string/numbers
|
@@ -49815,7 +49856,7 @@ enifed('router/transition-intent/named-transition-intent', ['exports', 'router/t
|
|
49815
49856
|
|
49816
49857
|
return _routerHandlerInfoFactory.default('param', {
|
49817
49858
|
name: name,
|
49818
|
-
|
49859
|
+
getHandler: getHandler,
|
49819
49860
|
params: params
|
49820
49861
|
});
|
49821
49862
|
}
|
@@ -49835,7 +49876,6 @@ enifed('router/transition-intent/url-transition-intent', ['exports', 'router/tra
|
|
49835
49876
|
var newState = new _routerTransitionState.default();
|
49836
49877
|
|
49837
49878
|
var results = recognizer.recognize(this.url),
|
49838
|
-
queryParams = {},
|
49839
49879
|
i,
|
49840
49880
|
len;
|
49841
49881
|
|
@@ -49850,7 +49890,7 @@ enifed('router/transition-intent/url-transition-intent', ['exports', 'router/tra
|
|
49850
49890
|
// For the case where the handler is loaded asynchronously, the error will be
|
49851
49891
|
// thrown once it is loaded.
|
49852
49892
|
function checkHandlerAccessibility(handler) {
|
49853
|
-
if (handler.inaccessibleByURL) {
|
49893
|
+
if (handler && handler.inaccessibleByURL) {
|
49854
49894
|
throw new _routerUnrecognizedUrlError.default(url);
|
49855
49895
|
}
|
49856
49896
|
|
@@ -49860,19 +49900,18 @@ enifed('router/transition-intent/url-transition-intent', ['exports', 'router/tra
|
|
49860
49900
|
for (i = 0, len = results.length; i < len; ++i) {
|
49861
49901
|
var result = results[i];
|
49862
49902
|
var name = result.handler;
|
49863
|
-
var handler = getHandler(name);
|
49864
|
-
|
49865
|
-
checkHandlerAccessibility(handler);
|
49866
|
-
|
49867
49903
|
var newHandlerInfo = _routerHandlerInfoFactory.default('param', {
|
49868
49904
|
name: name,
|
49869
|
-
|
49905
|
+
getHandler: getHandler,
|
49870
49906
|
params: result.params
|
49871
49907
|
});
|
49908
|
+
var handler = newHandlerInfo.handler;
|
49872
49909
|
|
49873
|
-
|
49874
|
-
|
49875
|
-
|
49910
|
+
if (handler) {
|
49911
|
+
checkHandlerAccessibility(handler);
|
49912
|
+
} else {
|
49913
|
+
// If the hanlder is being loaded asynchronously, check if we can
|
49914
|
+
// access it after it has resolved
|
49876
49915
|
newHandlerInfo.handlerPromise = newHandlerInfo.handlerPromise.then(checkHandlerAccessibility);
|
49877
49916
|
}
|
49878
49917
|
|
@@ -49891,20 +49930,16 @@ enifed('router/transition-intent/url-transition-intent', ['exports', 'router/tra
|
|
49891
49930
|
}
|
49892
49931
|
});
|
49893
49932
|
});
|
49894
|
-
enifed('router/transition-state', ['exports', 'router/
|
49933
|
+
enifed('router/transition-state', ['exports', 'router/utils', 'rsvp/promise'], function (exports, _routerUtils, _rsvpPromise) {
|
49895
49934
|
'use strict';
|
49896
49935
|
|
49897
|
-
function TransitionState(
|
49936
|
+
function TransitionState() {
|
49898
49937
|
this.handlerInfos = [];
|
49899
49938
|
this.queryParams = {};
|
49900
49939
|
this.params = {};
|
49901
49940
|
}
|
49902
49941
|
|
49903
49942
|
TransitionState.prototype = {
|
49904
|
-
handlerInfos: null,
|
49905
|
-
queryParams: null,
|
49906
|
-
params: null,
|
49907
|
-
|
49908
49943
|
promiseLabel: function (label) {
|
49909
49944
|
var targetName = '';
|
49910
49945
|
_routerUtils.forEach(this.handlerInfos, function (handlerInfo) {
|
@@ -49917,7 +49952,6 @@ enifed('router/transition-state', ['exports', 'router/handler-info', 'router/uti
|
|
49917
49952
|
},
|
49918
49953
|
|
49919
49954
|
resolve: function (shouldContinue, payload) {
|
49920
|
-
var self = this;
|
49921
49955
|
// First, calculate params for this state. This is useful
|
49922
49956
|
// information to provide to the various route hooks.
|
49923
49957
|
var params = this.params;
|
@@ -49997,7 +50031,7 @@ enifed('router/transition-state', ['exports', 'router/handler-info', 'router/uti
|
|
49997
50031
|
|
49998
50032
|
exports.default = TransitionState;
|
49999
50033
|
});
|
50000
|
-
enifed('router/transition', ['exports', 'rsvp/promise', 'router/
|
50034
|
+
enifed('router/transition', ['exports', 'rsvp/promise', 'router/utils'], function (exports, _rsvpPromise, _routerUtils) {
|
50001
50035
|
'use strict';
|
50002
50036
|
|
50003
50037
|
/**
|
@@ -50023,6 +50057,15 @@ enifed('router/transition', ['exports', 'rsvp/promise', 'router/handler-info', '
|
|
50023
50057
|
this.data = this.intent && this.intent.data || {};
|
50024
50058
|
this.resolvedModels = {};
|
50025
50059
|
this.queryParams = {};
|
50060
|
+
this.promise = undefined;
|
50061
|
+
this.error = undefined;
|
50062
|
+
this.params = undefined;
|
50063
|
+
this.handlerInfos = undefined;
|
50064
|
+
this.targetName = undefined;
|
50065
|
+
this.pivotHandler = undefined;
|
50066
|
+
this.sequence = undefined;
|
50067
|
+
this.isAborted = undefined;
|
50068
|
+
this.isActive = undefined;
|
50026
50069
|
|
50027
50070
|
if (error) {
|
50028
50071
|
this.promise = _rsvpPromise.default.reject(error);
|
@@ -50078,10 +50121,8 @@ enifed('router/transition', ['exports', 'rsvp/promise', 'router/handler-info', '
|
|
50078
50121
|
targetName: null,
|
50079
50122
|
urlMethod: 'update',
|
50080
50123
|
intent: null,
|
50081
|
-
params: null,
|
50082
50124
|
pivotHandler: null,
|
50083
50125
|
resolveIndex: 0,
|
50084
|
-
handlerInfos: null,
|
50085
50126
|
resolvedModels: null,
|
50086
50127
|
isActive: true,
|
50087
50128
|
state: null,
|