ember-source 2.14.0.beta.3 → 2.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.14.0-beta.3
9
+ * @version 2.14.0
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -9746,7 +9746,14 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
9746
9746
  if (_emberUtils.HAS_NATIVE_PROXY) {
9747
9747
  var validator = {
9748
9748
  get: function (obj, prop) {
9749
- if (prop !== 'class' && prop !== 'create') {
9749
+ if (typeof prop === 'symbol') {
9750
+ return obj[prop];
9751
+ }
9752
+ if (prop === 'inspect') {
9753
+ return undefined; /* for nodes formatter */
9754
+ }
9755
+
9756
+ if (prop !== 'class' && prop !== 'create' && prop !== 'toString') {
9750
9757
  throw new Error('You attempted to access "' + prop + '" on a factory manager created by container#factoryFor. "' + prop + '" is not a member of a factory manager."');
9751
9758
  }
9752
9759
 
@@ -17507,7 +17514,7 @@ enifed('ember-glimmer/helpers/get', ['exports', 'ember-babel', 'ember-metal', 'e
17507
17514
  if (pathType === 'string') {
17508
17515
  innerReference = this.innerReference = (0, _reference.referenceFromParts)(this.sourceReference, path.split('.'));
17509
17516
  } else if (pathType === 'number') {
17510
- innerReference = this.innerReference = this.sourceReference.get(path);
17517
+ innerReference = this.innerReference = this.sourceReference.get('' + path);
17511
17518
  }
17512
17519
 
17513
17520
  innerTag.update(innerReference.tag);
@@ -17586,21 +17593,83 @@ enifed('ember-glimmer/helpers/if-unless', ['exports', 'ember-babel', 'ember-debu
17586
17593
  }(_references.CachedReference);
17587
17594
 
17588
17595
  /**
17596
+ The `if` helper allows you to conditionally render one of two branches,
17597
+ depending on the "truthiness" of a property.
17598
+ For example the following values are all falsey: `false`, `undefined`, `null`, `""`, `0`, `NaN` or an empty array.
17599
+
17600
+ This helper has two forms, block and inline.
17601
+
17602
+ ## Block form
17603
+
17604
+ You can use the block form of `if` to conditionally render a section of the template.
17605
+
17606
+ To use it, pass the conditional value to the `if` helper,
17607
+ using the block form to wrap the section of template you want to conditionally render.
17608
+ Like so:
17609
+
17610
+ ```handlebars
17611
+ {{! will not render if foo is falsey}}
17612
+ {{#if foo}}
17613
+ Welcome to the {{foo.bar}}
17614
+ {{/if}}
17615
+ ```
17616
+
17617
+ You can also specify a template to show if the property is falsey by using
17618
+ the `else` helper.
17619
+
17620
+ ```handlebars
17621
+ {{! is it raining outside?}}
17622
+ {{#if isRaining}}
17623
+ Yes, grab an umbrella!
17624
+ {{else}}
17625
+ No, it's lovely outside!
17626
+ {{/if}}
17627
+ ```
17628
+
17629
+ You are also able to combine `else` and `if` helpers to create more complex
17630
+ conditional logic.
17631
+
17632
+ ```handlebars
17633
+ {{#if isMorning}}
17634
+ Good morning
17635
+ {{else if isAfternoon}}
17636
+ Good afternoon
17637
+ {{else}}
17638
+ Good night
17639
+ {{/if}}
17640
+ ```
17641
+
17642
+ ## Inline form
17643
+
17589
17644
  The inline `if` helper conditionally renders a single property or string.
17590
- This helper acts like a ternary operator. If the first property is truthy,
17591
- the second argument will be displayed, otherwise, the third argument will be
17592
- displayed
17645
+
17646
+ In this form, the `if` helper receives three arguments, the conditional value,
17647
+ the value to render when truthy, and the value to render when falsey.
17648
+
17649
+ For example, if `useLongGreeting` is truthy, the following:
17593
17650
 
17594
17651
  ```handlebars
17595
17652
  {{if useLongGreeting "Hello" "Hi"}} Alex
17596
17653
  ```
17597
17654
 
17598
- You can use the `if` helper inside another helper as a subexpression.
17655
+ Will render:
17656
+
17657
+ ```html
17658
+ Hello Alex
17659
+ ```
17660
+
17661
+ ### Nested `if`
17662
+
17663
+ You can use the `if` helper inside another helper as a nested helper:
17599
17664
 
17600
17665
  ```handlebars
17601
17666
  {{some-component height=(if isBig "100" "10")}}
17602
17667
  ```
17603
17668
 
17669
+ One detail to keep in mind is that both branches of the `if` helper will be evaluated,
17670
+ so if you have `{{if condition "foo" (expensive-operation "bar")`,
17671
+ `expensive-operation` will always calculate.
17672
+
17604
17673
  @method if
17605
17674
  @for Ember.Templates.helpers
17606
17675
  @public
@@ -21554,6 +21623,25 @@ enifed('ember-glimmer/utils/references', ['exports', '@glimmer/runtime', 'ember-
21554
21623
  });
21555
21624
  var UPDATE = exports.UPDATE = (0, _emberUtils.symbol)('UPDATE');
21556
21625
 
21626
+ var maybeFreeze = void 0;
21627
+ if (true) {
21628
+ // gaurding this in a DEBUG gaurd (as well as all invocations)
21629
+ // so that it is properly stripped during the minification's
21630
+ // dead code elimination
21631
+ maybeFreeze = function (obj) {
21632
+ // re-freezing an already frozen object introduces a significant
21633
+ // performance penalty on Chrome (tested through 59).
21634
+ //
21635
+ // See: https://bugs.chromium.org/p/v8/issues/detail?id=6450
21636
+ if (!Object.isFrozen(obj) && _emberUtils.HAS_NATIVE_WEAKMAP) {
21637
+ Object.freeze(obj);
21638
+ }
21639
+ };
21640
+ }
21641
+
21642
+ // @abstract
21643
+ // @implements PathReference
21644
+
21557
21645
  var EmberPathReference = function () {
21558
21646
  function EmberPathReference() {
21559
21647
  (0, _emberBabel.classCallCheck)(this, EmberPathReference);
@@ -21888,10 +21976,8 @@ enifed('ember-glimmer/utils/references', ['exports', '@glimmer/runtime', 'ember-
21888
21976
  var namedValue = named.value();
21889
21977
 
21890
21978
  if (true) {
21891
- if (_emberUtils.HAS_NATIVE_WEAKMAP) {
21892
- Object.freeze(positionalValue);
21893
- Object.freeze(namedValue);
21894
- }
21979
+ maybeFreeze(positionalValue);
21980
+ maybeFreeze(namedValue);
21895
21981
  }
21896
21982
 
21897
21983
  var result = helper(positionalValue, namedValue);
@@ -21932,10 +22018,8 @@ enifed('ember-glimmer/utils/references', ['exports', '@glimmer/runtime', 'ember-
21932
22018
  var namedValue = named.value();
21933
22019
 
21934
22020
  if (true) {
21935
- if (_emberUtils.HAS_NATIVE_WEAKMAP) {
21936
- Object.freeze(positionalValue);
21937
- Object.freeze(namedValue);
21938
- }
22021
+ maybeFreeze(positionalValue);
22022
+ maybeFreeze(namedValue);
21939
22023
  }
21940
22024
 
21941
22025
  return helper(positionalValue, namedValue);
@@ -21975,10 +22059,8 @@ enifed('ember-glimmer/utils/references', ['exports', '@glimmer/runtime', 'ember-
21975
22059
  var namedValue = named.value();
21976
22060
 
21977
22061
  if (true) {
21978
- if (_emberUtils.HAS_NATIVE_WEAKMAP) {
21979
- Object.freeze(positionalValue);
21980
- Object.freeze(namedValue);
21981
- }
22062
+ maybeFreeze(positionalValue);
22063
+ maybeFreeze(namedValue);
21982
22064
  }
21983
22065
 
21984
22066
  return instance.compute(positionalValue, namedValue);
@@ -32134,7 +32216,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
32134
32216
  the server that is required to enter a route.
32135
32217
  @method beforeModel
32136
32218
  @param {Transition} transition
32137
- @return {Promise} if the value returned from this hook is
32219
+ @return {any | Promise<any>} if the value returned from this hook is
32138
32220
  a promise, the transition will pause until the transition
32139
32221
  resolves. Otherwise, non-promise return values are not
32140
32222
  utilized in any way.
@@ -32167,7 +32249,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
32167
32249
  @param {Object} resolvedModel the value returned from `model`,
32168
32250
  or its resolved value if it was a promise
32169
32251
  @param {Transition} transition
32170
- @return {Promise} if the value returned from this hook is
32252
+ @return {any | Promise<any>} if the value returned from this hook is
32171
32253
  a promise, the transition will pause until the transition
32172
32254
  resolves. Otherwise, non-promise return values are not
32173
32255
  utilized in any way.
@@ -43667,7 +43749,7 @@ enifed('ember-testing/helpers/click', ['exports', 'ember-testing/events'], funct
43667
43749
  @method click
43668
43750
  @param {String} selector jQuery selector for finding element on the DOM
43669
43751
  @param {Object} context A DOM Element, Document, or jQuery to use as context
43670
- @return {RSVP.Promise}
43752
+ @return {RSVP.Promise<undefined>}
43671
43753
  @public
43672
43754
  */
43673
43755
  function click(app, selector, context) {
@@ -43799,7 +43881,7 @@ enifed('ember-testing/helpers/fill_in', ['exports', 'ember-testing/events'], fun
43799
43881
  @param {String} selector jQuery selector finding an input element on the DOM
43800
43882
  to fill text with
43801
43883
  @param {String} text text to place inside the input element
43802
- @return {RSVP.Promise}
43884
+ @return {RSVP.Promise<undefined>}
43803
43885
  @public
43804
43886
  */
43805
43887
  function fillIn(app, selector, contextOrText, text) {
@@ -43924,7 +44006,7 @@ enifed('ember-testing/helpers/key_event', ['exports'], function (exports) {
43924
44006
  @param {String} selector jQuery selector for finding element on the DOM
43925
44007
  @param {String} type the type of key event, e.g. `keypress`, `keydown`, `keyup`
43926
44008
  @param {Number} keyCode the keyCode of the simulated key event
43927
- @return {RSVP.Promise}
44009
+ @return {RSVP.Promise<undefined>}
43928
44010
  @since 1.5.0
43929
44011
  @public
43930
44012
  */
@@ -44015,7 +44097,7 @@ enifed('ember-testing/helpers/trigger_event', ['exports', 'ember-testing/events'
44015
44097
  argument to find only within the context's children
44016
44098
  @param {String} type The event type to be triggered.
44017
44099
  @param {Object} [options] The options to be passed to jQuery.Event.
44018
- @return {RSVP.Promise}
44100
+ @return {RSVP.Promise<undefined>}
44019
44101
  @since 1.5.0
44020
44102
  @public
44021
44103
  */
@@ -44084,7 +44166,7 @@ enifed('ember-testing/helpers/visit', ['exports', 'ember-metal'], function (expo
44084
44166
 
44085
44167
  @method visit
44086
44168
  @param {String} url the name of the route
44087
- @return {RSVP.Promise}
44169
+ @return {RSVP.Promise<undefined>}
44088
44170
  @public
44089
44171
  */
44090
44172
  function visit(app, url) {
@@ -44142,7 +44224,7 @@ enifed('ember-testing/helpers/wait', ['exports', 'ember-testing/test/waiters', '
44142
44224
 
44143
44225
  @method wait
44144
44226
  @param {Object} value The value to be returned.
44145
- @return {RSVP.Promise}
44227
+ @return {RSVP.Promise<any>} Promise that resolves to the passed value.
44146
44228
  @public
44147
44229
  @since 1.0.0
44148
44230
  */
@@ -46153,7 +46235,7 @@ enifed('ember-views/mixins/text_support', ['exports', 'ember-metal', 'ember-runt
46153
46235
  exports.default = _emberMetal.Mixin.create(_emberRuntime.TargetActionSupport, {
46154
46236
  value: '',
46155
46237
 
46156
- attributeBindings: ['autocapitalize', 'autocorrect', 'autofocus', 'disabled', 'form', 'maxlength', 'placeholder', 'readonly', 'required', 'selectionDirection', 'spellcheck', 'tabindex', 'title'],
46238
+ attributeBindings: ['autocapitalize', 'autocorrect', 'autofocus', 'disabled', 'form', 'maxlength', 'minlength', 'placeholder', 'readonly', 'required', 'selectionDirection', 'spellcheck', 'tabindex', 'title'],
46157
46239
  placeholder: null,
46158
46240
  disabled: false,
46159
46241
  maxlength: null,
@@ -46608,7 +46690,7 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-babel', 'ember-util
46608
46690
 
46609
46691
  (true && !(false) && (0, _emberDebug.deprecate)('`eventManager` has been deprecated in ' + this + '.', false, {
46610
46692
  id: 'ember-views.event-dispatcher.canDispatchToEventManager',
46611
- until: '2.16.0'
46693
+ until: '2.17.0'
46612
46694
  }));
46613
46695
 
46614
46696
 
@@ -46787,7 +46869,7 @@ enifed('ember-views/system/event_dispatcher', ['exports', 'ember-utils', 'ember-
46787
46869
  (true && !(_emberEnvironment.environment.hasDOM) && (0, _emberDebug.assert)('EventDispatcher should never be instantiated in fastboot mode. Please report this as an Ember bug.', _emberEnvironment.environment.hasDOM));
46788
46870
  (true && !(!('canDispatchToEventManager' in this)) && (0, _emberDebug.deprecate)('`canDispatchToEventManager` has been deprecated in ' + this + '.', !('canDispatchToEventManager' in this), {
46789
46871
  id: 'ember-views.event-dispatcher.canDispatchToEventManager',
46790
- until: '2.16.0'
46872
+ until: '2.17.0'
46791
46873
  }));
46792
46874
  },
46793
46875
 
@@ -48078,7 +48160,7 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
48078
48160
  enifed("ember/version", ["exports"], function (exports) {
48079
48161
  "use strict";
48080
48162
 
48081
- exports.default = "2.14.0-beta.3";
48163
+ exports.default = "2.14.0";
48082
48164
  });
48083
48165
  enifed("handlebars", ["exports"], function (exports) {
48084
48166
  "use strict";
@@ -1066,7 +1066,7 @@ o.sourceReference=n,o.pathReference=r,o.lastPath=null,o.innerReference=null
1066
1066
  var s=o.innerTag=new i.UpdatableTag(i.CONSTANT_TAG)
1067
1067
  return o.tag=(0,i.combine)([n.tag,r.tag,s]),o}return(0,t.inherits)(o,e),o.create=function(e,t){var n
1068
1068
  return(0,i.isConst)(t)?(n=t.value().split("."),(0,i.referenceFromParts)(e,n)):new o(e,t)},o.prototype.compute=function(){var e,t=this.lastPath,n=this.innerReference,r=this.innerTag,o=this.lastPath=this.pathReference.value()
1069
- return o!==t&&(o?(e=typeof o,"string"===e?n=this.innerReference=(0,i.referenceFromParts)(this.sourceReference,o.split(".")):"number"===e&&(n=this.innerReference=this.sourceReference.get(o)),r.update(n.tag)):(n=this.innerReference=null,r.update(i.CONSTANT_TAG))),n?n.value():null},o.prototype[r.UPDATE]=function(e){(0,n.set)(this.sourceReference.value(),this.pathReference.value(),e)},o}(r.CachedReference)}),e("ember-glimmer/helpers/hash",["exports"],function(e){"use strict"
1069
+ return o!==t&&(o?(e=typeof o,"string"===e?n=this.innerReference=(0,i.referenceFromParts)(this.sourceReference,o.split(".")):"number"===e&&(n=this.innerReference=this.sourceReference.get(""+o)),r.update(n.tag)):(n=this.innerReference=null,r.update(i.CONSTANT_TAG))),n?n.value():null},o.prototype[r.UPDATE]=function(e){(0,n.set)(this.sourceReference.value(),this.pathReference.value(),e)},o}(r.CachedReference)}),e("ember-glimmer/helpers/hash",["exports"],function(e){"use strict"
1070
1070
  e["default"]=function(e,t){return t.named}}),e("ember-glimmer/helpers/if-unless",["exports","ember-babel","ember-debug","ember-glimmer/utils/references","@glimmer/reference"],function(e,t,n,r,i){"use strict"
1071
1071
  e.inlineIf=function(e,t){var n=t.positional
1072
1072
  switch(n.length){case 2:return o.create(n.at(0),n.at(1),null)
@@ -2406,7 +2406,7 @@ e["default"]=n.Mixin.create({init:function(){this._super.apply(this,arguments),(
2406
2406
  var r=Object.freeze([])
2407
2407
  e["default"]=t.Mixin.create({concatenatedProperties:["classNames","classNameBindings"],init:function(){this._super.apply(this,arguments)},classNames:r,classNameBindings:r})}),e("ember-views/mixins/text_support",["exports","ember-metal","ember-runtime"],function(e,t,n){"use strict"
2408
2408
  function r(e,n,r){var i=(0,t.get)(n,"attrs."+e)||(0,t.get)(n,e),o=(0,t.get)(n,"onEvent"),s=(0,t.get)(n,"value");(o===e||"keyPress"===o&&"key-press"===e)&&n.sendAction("action",s),n.sendAction(e,s),(i||o===e)&&((0,t.get)(n,"bubbles")||r.stopPropagation())}var i={13:"insertNewline",27:"cancel"}
2409
- e["default"]=t.Mixin.create(n.TargetActionSupport,{value:"",attributeBindings:["autocapitalize","autocorrect","autofocus","disabled","form","maxlength","placeholder","readonly","required","selectionDirection","spellcheck","tabindex","title"],placeholder:null,disabled:!1,maxlength:null,init:function(){this._super.apply(this,arguments),this.on("paste",this,this._elementValueDidChange),this.on("cut",this,this._elementValueDidChange),this.on("input",this,this._elementValueDidChange)},action:null,onEvent:"enter",bubbles:!1,interpretKeyEvents:function(e){var t=i[e.keyCode]
2409
+ e["default"]=t.Mixin.create(n.TargetActionSupport,{value:"",attributeBindings:["autocapitalize","autocorrect","autofocus","disabled","form","maxlength","minlength","placeholder","readonly","required","selectionDirection","spellcheck","tabindex","title"],placeholder:null,disabled:!1,maxlength:null,init:function(){this._super.apply(this,arguments),this.on("paste",this,this._elementValueDidChange),this.on("cut",this,this._elementValueDidChange),this.on("input",this,this._elementValueDidChange)},action:null,onEvent:"enter",bubbles:!1,interpretKeyEvents:function(e){var t=i[e.keyCode]
2410
2410
  if(this._elementValueDidChange(),t)return this[t](e)},_elementValueDidChange:function(){(0,t.set)(this,"value",this.element.value)},change:function(e){this._elementValueDidChange(e)},insertNewline:function(e){r("enter",this,e),r("insert-newline",this,e)},cancel:function(e){r("escape-press",this,e)},focusIn:function(e){r("focus-in",this,e)},focusOut:function(e){this._elementValueDidChange(e),r("focus-out",this,e)},keyPress:function(e){r("key-press",this,e)},keyUp:function(e){this.interpretKeyEvents(e),this.sendAction("key-up",(0,t.get)(this,"value"),e)},keyDown:function(e){this.sendAction("key-down",(0,t.get)(this,"value"),e)}})}),e("ember-views/mixins/view_state_support",["exports","ember-metal"],function(e,t){"use strict"
2411
2411
  e["default"]=t.Mixin.create({_transitionTo:function(e){var t=this._currentState,n=this._currentState=this._states[e]
2412
2412
  this._state=e,t&&t.exit&&t.exit(this),n.enter&&n.enter(this)}})}),e("ember-views/mixins/view_support",["exports","ember-utils","ember-metal","ember-debug","ember-environment","ember-views/system/utils","ember-runtime/system/core_object","ember-views/system/jquery"],function(e,t,n,r,i,o,s,a){"use strict"
@@ -2476,7 +2476,7 @@ var b,_=s.computed
2476
2476
  _.alias=s.alias,s["default"].computed=_,s["default"].ComputedProperty=s.ComputedProperty,s["default"].cacheFor=s.cacheFor,s["default"].assert=u.assert,s["default"].warn=u.warn,s["default"].debug=u.debug,s["default"].deprecate=u.deprecate,s["default"].deprecateFunc=u.deprecateFunc,s["default"].runInDebug=u.runInDebug,s["default"].Debug={registerDeprecationHandler:u.registerDeprecationHandler,registerWarnHandler:u.registerWarnHandler},s["default"].merge=s.merge,s["default"].instrument=s.instrument,s["default"].subscribe=s.instrumentationSubscribe,s["default"].Instrumentation={instrument:s.instrument,subscribe:s.instrumentationSubscribe,unsubscribe:s.instrumentationUnsubscribe,reset:s.instrumentationReset},s["default"].Error=u.Error,s["default"].META_DESC=s.META_DESC,s["default"].meta=s.meta,s["default"].get=s.get,s["default"].getWithDefault=s.getWithDefault,s["default"]._getPath=s._getPath,s["default"].set=s.set,s["default"].trySet=s.trySet,s["default"].FEATURES=a.FEATURES,s["default"].FEATURES.isEnabled=u.isFeatureEnabled,s["default"]._Cache=s.Cache,s["default"].on=s.on,s["default"].addListener=s.addListener,s["default"].removeListener=s.removeListener,s["default"]._suspendListener=s.suspendListener,s["default"]._suspendListeners=s.suspendListeners,s["default"].sendEvent=s.sendEvent,s["default"].hasListeners=s.hasListeners,s["default"].watchedEvents=s.watchedEvents,s["default"].listenersFor=s.listenersFor,s["default"].accumulateListeners=s.accumulateListeners,s["default"].isNone=s.isNone,s["default"].isEmpty=s.isEmpty,s["default"].isBlank=s.isBlank,s["default"].isPresent=s.isPresent,s["default"].run=s.run,s["default"]._ObserverSet=s.ObserverSet,s["default"].propertyWillChange=s.propertyWillChange,s["default"].propertyDidChange=s.propertyDidChange,s["default"].overrideChains=s.overrideChains,s["default"].beginPropertyChanges=s.beginPropertyChanges,s["default"].endPropertyChanges=s.endPropertyChanges,s["default"].changeProperties=s.changeProperties,s["default"].platform={defineProperty:!0,hasPropertyAccessors:!0},s["default"].defineProperty=s.defineProperty,s["default"].watchKey=s.watchKey,s["default"].unwatchKey=s.unwatchKey,s["default"].removeChainWatcher=s.removeChainWatcher,s["default"]._ChainNode=s.ChainNode,s["default"].finishChains=s.finishChains,s["default"].watchPath=s.watchPath,s["default"].unwatchPath=s.unwatchPath,s["default"].watch=s.watch,s["default"].isWatching=s.isWatching,s["default"].unwatch=s.unwatch,s["default"].destroy=s.destroy,s["default"].libraries=s.libraries,s["default"].OrderedSet=s.OrderedSet,s["default"].Map=s.Map,s["default"].MapWithDefault=s.MapWithDefault,s["default"].getProperties=s.getProperties,s["default"].setProperties=s.setProperties,s["default"].expandProperties=s.expandProperties,s["default"].NAME_KEY=i.NAME_KEY,s["default"].addObserver=s.addObserver,s["default"].observersFor=s.observersFor,s["default"].removeObserver=s.removeObserver,s["default"]._suspendObserver=s._suspendObserver,s["default"]._suspendObservers=s._suspendObservers,s["default"].required=s.required,s["default"].aliasMethod=s.aliasMethod,s["default"].observer=s.observer,s["default"].immediateObserver=s._immediateObserver,s["default"].mixin=s.mixin,s["default"].Mixin=s.Mixin,s["default"].bind=s.bind,s["default"].Binding=s.Binding,s["default"].isGlobalPath=s.isGlobalPath,Object.defineProperty(s["default"],"ENV",{get:function(){return n.ENV},enumerable:!1}),Object.defineProperty(s["default"],"lookup",{get:function(){return n.context.lookup},set:function(e){n.context.lookup=e},enumerable:!1}),s["default"].EXTEND_PROTOTYPES=n.ENV.EXTEND_PROTOTYPES,Object.defineProperty(s["default"],"LOG_STACKTRACE_ON_DEPRECATION",{get:function(){return n.ENV.LOG_STACKTRACE_ON_DEPRECATION},set:function(e){n.ENV.LOG_STACKTRACE_ON_DEPRECATION=!!e},enumerable:!1}),Object.defineProperty(s["default"],"LOG_VERSION",{get:function(){return n.ENV.LOG_VERSION},set:function(e){n.ENV.LOG_VERSION=!!e},enumerable:!1}),Object.defineProperty(s["default"],"LOG_BINDINGS",{get:function(){return n.ENV.LOG_BINDINGS},set:function(e){n.ENV.LOG_BINDINGS=!!e},enumerable:!1}),Object.defineProperty(s["default"],"onerror",{get:s.getOnerror,set:s.setOnerror,enumerable:!1}),Object.defineProperty(s["default"],"K",{get:function(){return v}}),Object.defineProperty(s["default"],"testing",{get:u.isTesting,set:u.setTesting,enumerable:!1}),s["default"].Backburner=function(){function e(e){return c["default"].apply(this,e)}return e.prototype=c["default"].prototype,new e(arguments)},s["default"]._Backburner=c["default"],s["default"].Logger=l["default"],s["default"].String=p.String,s["default"].Object=p.Object,s["default"]._RegistryProxyMixin=p.RegistryProxyMixin,s["default"]._ContainerProxyMixin=p.ContainerProxyMixin,s["default"].compare=p.compare,s["default"].copy=p.copy,s["default"].isEqual=p.isEqual,s["default"].inject=p.inject,s["default"].Array=p.Array,s["default"].Comparable=p.Comparable,s["default"].Enumerable=p.Enumerable,s["default"].ArrayProxy=p.ArrayProxy,s["default"].ObjectProxy=p.ObjectProxy,s["default"].ActionHandler=p.ActionHandler,s["default"].CoreObject=p.CoreObject,s["default"].NativeArray=p.NativeArray,s["default"].Copyable=p.Copyable,s["default"].Freezable=p.Freezable,s["default"].FROZEN_ERROR=p.FROZEN_ERROR,s["default"].MutableEnumerable=p.MutableEnumerable,s["default"].MutableArray=p.MutableArray,s["default"].TargetActionSupport=p.TargetActionSupport,s["default"].Evented=p.Evented,s["default"].PromiseProxyMixin=p.PromiseProxyMixin,s["default"].Observable=p.Observable,s["default"].typeOf=p.typeOf,s["default"].isArray=p.isArray,s["default"].Object=p.Object,s["default"].onLoad=p.onLoad,s["default"].runLoadHooks=p.runLoadHooks,s["default"].Controller=p.Controller,s["default"].ControllerMixin=p.ControllerMixin,s["default"].Service=p.Service,s["default"]._ProxyMixin=p._ProxyMixin,s["default"].RSVP=p.RSVP,s["default"].Namespace=p.Namespace,_.empty=p.empty,_.notEmpty=p.notEmpty,_.none=p.none,_.not=p.not,_.bool=p.bool,_.match=p.match,_.equal=p.equal,_.gt=p.gt,_.gte=p.gte,_.lt=p.lt,_.lte=p.lte,_.oneWay=p.oneWay,_.reads=p.oneWay,_.readOnly=p.readOnly,_.deprecatingAlias=p.deprecatingAlias,_.and=p.and,_.or=p.or,_.any=p.any,_.sum=p.sum,_.min=p.min,_.max=p.max,_.map=p.map,_.sort=p.sort,_.setDiff=p.setDiff,_.mapBy=p.mapBy,_.filter=p.filter,_.filterBy=p.filterBy,_.uniq=p.uniq,_.uniqBy=p.uniqBy,_.union=p.union,_.intersect=p.intersect,_.collect=p.collect,Object.defineProperty(s["default"],"STRINGS",{configurable:!1,get:p.getStrings,set:p.setStrings}),Object.defineProperty(s["default"],"BOOTED",{configurable:!1,enumerable:!1,get:p.isNamespaceSearchDisabled,set:p.setNamespaceSearchDisabled}),s["default"].Component=h.Component,h.Helper.helper=h.helper,s["default"].Helper=h.Helper,s["default"].Checkbox=h.Checkbox,s["default"].TextField=h.TextField,s["default"].TextArea=h.TextArea,s["default"].LinkComponent=h.LinkComponent,n.ENV.EXTEND_PROTOTYPES.String&&(String.prototype.htmlSafe=function(){return(0,h.htmlSafe)(this)})
2477
2477
  var w=s["default"].Handlebars=s["default"].Handlebars||{},E=s["default"].HTMLBars=s["default"].HTMLBars||{},C=w.Utils=w.Utils||{}
2478
2478
  Object.defineProperty(w,"SafeString",{get:h._getSafeString}),E.template=w.template=h.template,C.escapeExpression=h.escapeExpression,p.String.htmlSafe=h.htmlSafe,p.String.isHTMLSafe=h.isHTMLSafe,Object.defineProperty(s["default"],"TEMPLATES",{get:h.getTemplates,set:h.setTemplates,configurable:!1,enumerable:!1}),e.VERSION=f["default"],s["default"].VERSION=f["default"],s.libraries.registerCoreLibrary("Ember",f["default"]),s["default"].$=d.jQuery,s["default"].ViewTargetActionSupport=d.ViewTargetActionSupport,s["default"].ViewUtils={isSimpleClick:d.isSimpleClick,getViewElement:d.getViewElement,getViewBounds:d.getViewBounds,getViewClientRects:d.getViewClientRects,getViewBoundingClientRect:d.getViewBoundingClientRect,getRootViews:d.getRootViews,getChildViews:d.getChildViews},s["default"].TextSupport=d.TextSupport,s["default"].ComponentLookup=d.ComponentLookup,s["default"].EventDispatcher=d.EventDispatcher,s["default"].Location=m.Location,s["default"].AutoLocation=m.AutoLocation,s["default"].HashLocation=m.HashLocation,s["default"].HistoryLocation=m.HistoryLocation,s["default"].NoneLocation=m.NoneLocation,s["default"].controllerFor=m.controllerFor,s["default"].generateControllerFactory=m.generateControllerFactory,s["default"].generateController=m.generateController,s["default"].RouterDSL=m.RouterDSL,s["default"].Router=m.Router,s["default"].Route=m.Route,s["default"].Application=g.Application,s["default"].ApplicationInstance=g.ApplicationInstance,s["default"].Engine=g.Engine,s["default"].EngineInstance=g.EngineInstance,s["default"].DefaultResolver=s["default"].Resolver=g.Resolver,(0,p.runLoadHooks)("Ember.Application",g.Application),s["default"].DataAdapter=y.DataAdapter,s["default"].ContainerDebugAdapter=y.ContainerDebugAdapter,(0,t.has)("ember-template-compiler")&&(0,t["default"])("ember-template-compiler"),(0,t.has)("ember-testing")&&(b=(0,t["default"])("ember-testing"),s["default"].Test=b.Test,s["default"].Test.Adapter=b.Adapter,s["default"].Test.QUnitAdapter=b.QUnitAdapter,s["default"].setupForTesting=b.setupForTesting),(0,p.runLoadHooks)("Ember"),e["default"]=s["default"],r.IS_NODE?r.module.exports=s["default"]:n.context.exports.Ember=n.context.exports.Em=s["default"]}),e("ember/version",["exports"],function(e){"use strict"
2479
- e["default"]="2.14.0-beta.3"}),e("node-module",["exports"],function(e){var t="object"==typeof module&&"function"==typeof module.require
2479
+ e["default"]="2.14.0"}),e("node-module",["exports"],function(e){var t="object"==typeof module&&"function"==typeof module.require
2480
2480
  t?(e.require=module.require,e.module=module,e.IS_NODE=t):(e.require=null,e.module=null,e.IS_NODE=t)}),e("route-recognizer",["exports"],function(e){"use strict"
2481
2481
  function t(){var e=g(null)
2482
2482
  return e.__=void 0,delete e.__,e}function n(e,t,r){return function(i,o){var s=e+i
@@ -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.14.0-beta.3
9
+ * @version 2.14.0
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -16927,7 +16927,7 @@ enifed('ember-glimmer/helpers/get', ['exports', 'ember-babel', 'ember-metal', 'e
16927
16927
  if (pathType === 'string') {
16928
16928
  innerReference = this.innerReference = (0, _reference.referenceFromParts)(this.sourceReference, path.split('.'));
16929
16929
  } else if (pathType === 'number') {
16930
- innerReference = this.innerReference = this.sourceReference.get(path);
16930
+ innerReference = this.innerReference = this.sourceReference.get('' + path);
16931
16931
  }
16932
16932
 
16933
16933
  innerTag.update(innerReference.tag);
@@ -16960,21 +16960,83 @@ enifed('ember-glimmer/helpers/if-unless', ['exports', 'ember-babel', 'ember-debu
16960
16960
  exports.inlineIf =
16961
16961
 
16962
16962
  /**
16963
+ The `if` helper allows you to conditionally render one of two branches,
16964
+ depending on the "truthiness" of a property.
16965
+ For example the following values are all falsey: `false`, `undefined`, `null`, `""`, `0`, `NaN` or an empty array.
16966
+
16967
+ This helper has two forms, block and inline.
16968
+
16969
+ ## Block form
16970
+
16971
+ You can use the block form of `if` to conditionally render a section of the template.
16972
+
16973
+ To use it, pass the conditional value to the `if` helper,
16974
+ using the block form to wrap the section of template you want to conditionally render.
16975
+ Like so:
16976
+
16977
+ ```handlebars
16978
+ {{! will not render if foo is falsey}}
16979
+ {{#if foo}}
16980
+ Welcome to the {{foo.bar}}
16981
+ {{/if}}
16982
+ ```
16983
+
16984
+ You can also specify a template to show if the property is falsey by using
16985
+ the `else` helper.
16986
+
16987
+ ```handlebars
16988
+ {{! is it raining outside?}}
16989
+ {{#if isRaining}}
16990
+ Yes, grab an umbrella!
16991
+ {{else}}
16992
+ No, it's lovely outside!
16993
+ {{/if}}
16994
+ ```
16995
+
16996
+ You are also able to combine `else` and `if` helpers to create more complex
16997
+ conditional logic.
16998
+
16999
+ ```handlebars
17000
+ {{#if isMorning}}
17001
+ Good morning
17002
+ {{else if isAfternoon}}
17003
+ Good afternoon
17004
+ {{else}}
17005
+ Good night
17006
+ {{/if}}
17007
+ ```
17008
+
17009
+ ## Inline form
17010
+
16963
17011
  The inline `if` helper conditionally renders a single property or string.
16964
- This helper acts like a ternary operator. If the first property is truthy,
16965
- the second argument will be displayed, otherwise, the third argument will be
16966
- displayed
17012
+
17013
+ In this form, the `if` helper receives three arguments, the conditional value,
17014
+ the value to render when truthy, and the value to render when falsey.
17015
+
17016
+ For example, if `useLongGreeting` is truthy, the following:
16967
17017
 
16968
17018
  ```handlebars
16969
17019
  {{if useLongGreeting "Hello" "Hi"}} Alex
16970
17020
  ```
16971
17021
 
16972
- You can use the `if` helper inside another helper as a subexpression.
17022
+ Will render:
17023
+
17024
+ ```html
17025
+ Hello Alex
17026
+ ```
17027
+
17028
+ ### Nested `if`
17029
+
17030
+ You can use the `if` helper inside another helper as a nested helper:
16973
17031
 
16974
17032
  ```handlebars
16975
17033
  {{some-component height=(if isBig "100" "10")}}
16976
17034
  ```
16977
17035
 
17036
+ One detail to keep in mind is that both branches of the `if` helper will be evaluated,
17037
+ so if you have `{{if condition "foo" (expensive-operation "bar")`,
17038
+ `expensive-operation` will always calculate.
17039
+
16978
17040
  @method if
16979
17041
  @for Ember.Templates.helpers
16980
17042
  @public
@@ -20696,6 +20758,9 @@ enifed('ember-glimmer/utils/references', ['exports', '@glimmer/runtime', 'ember-
20696
20758
  });
20697
20759
  var UPDATE = exports.UPDATE = (0, _emberUtils.symbol)('UPDATE');
20698
20760
 
20761
+ // @abstract
20762
+ // @implements PathReference
20763
+
20699
20764
  var EmberPathReference = function () {
20700
20765
  function EmberPathReference() {}
20701
20766
 
@@ -30961,7 +31026,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
30961
31026
  the server that is required to enter a route.
30962
31027
  @method beforeModel
30963
31028
  @param {Transition} transition
30964
- @return {Promise} if the value returned from this hook is
31029
+ @return {any | Promise<any>} if the value returned from this hook is
30965
31030
  a promise, the transition will pause until the transition
30966
31031
  resolves. Otherwise, non-promise return values are not
30967
31032
  utilized in any way.
@@ -30994,7 +31059,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
30994
31059
  @param {Object} resolvedModel the value returned from `model`,
30995
31060
  or its resolved value if it was a promise
30996
31061
  @param {Transition} transition
30997
- @return {Promise} if the value returned from this hook is
31062
+ @return {any | Promise<any>} if the value returned from this hook is
30998
31063
  a promise, the transition will pause until the transition
30999
31064
  resolves. Otherwise, non-promise return values are not
31000
31065
  utilized in any way.
@@ -42000,7 +42065,7 @@ enifed('ember-views/mixins/text_support', ['exports', 'ember-metal', 'ember-runt
42000
42065
  exports.default = _emberMetal.Mixin.create(_emberRuntime.TargetActionSupport, {
42001
42066
  value: '',
42002
42067
 
42003
- attributeBindings: ['autocapitalize', 'autocorrect', 'autofocus', 'disabled', 'form', 'maxlength', 'placeholder', 'readonly', 'required', 'selectionDirection', 'spellcheck', 'tabindex', 'title'],
42068
+ attributeBindings: ['autocapitalize', 'autocorrect', 'autofocus', 'disabled', 'form', 'maxlength', 'minlength', 'placeholder', 'readonly', 'required', 'selectionDirection', 'spellcheck', 'tabindex', 'title'],
42004
42069
  placeholder: null,
42005
42070
  disabled: false,
42006
42071
  maxlength: null,
@@ -42394,7 +42459,7 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-utils', 'ember-meta
42394
42459
 
42395
42460
  false && !false && (0, _emberDebug.deprecate)('`eventManager` has been deprecated in ' + this + '.', false, {
42396
42461
  id: 'ember-views.event-dispatcher.canDispatchToEventManager',
42397
- until: '2.16.0'
42462
+ until: '2.17.0'
42398
42463
  });
42399
42464
 
42400
42465
  if (dispatcher && !('canDispatchToEventManager' in dispatcher)) {
@@ -42572,7 +42637,7 @@ enifed('ember-views/system/event_dispatcher', ['exports', 'ember-utils', 'ember-
42572
42637
  false && !_emberEnvironment.environment.hasDOM && (0, _emberDebug.assert)('EventDispatcher should never be instantiated in fastboot mode. Please report this as an Ember bug.', _emberEnvironment.environment.hasDOM);
42573
42638
  false && !!('canDispatchToEventManager' in this) && (0, _emberDebug.deprecate)('`canDispatchToEventManager` has been deprecated in ' + this + '.', !('canDispatchToEventManager' in this), {
42574
42639
  id: 'ember-views.event-dispatcher.canDispatchToEventManager',
42575
- until: '2.16.0'
42640
+ until: '2.17.0'
42576
42641
  });
42577
42642
  },
42578
42643
 
@@ -43821,7 +43886,7 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
43821
43886
  enifed("ember/version", ["exports"], function (exports) {
43822
43887
  "use strict";
43823
43888
 
43824
- exports.default = "2.14.0-beta.3";
43889
+ exports.default = "2.14.0";
43825
43890
  });
43826
43891
  enifed('node-module', ['exports'], function(_exports) {
43827
43892
  var IS_NODE = typeof module === 'object' && typeof module.require === 'function';