ember-source 2.8.0.beta.2 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +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,
|