ember-source 2.11.0.beta.4 → 2.11.0.beta.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +42 -34
- data/dist/ember-template-compiler.js +77 -38
- data/dist/ember-testing.js +2 -2
- data/dist/ember-tests.js +73071 -0
- data/dist/ember-tests.prod.js +72592 -0
- data/dist/ember.debug.js +810 -561
- data/dist/ember.js +810 -561
- data/dist/ember.min.js +200 -191
- data/dist/ember.prod.js +606 -557
- metadata +4 -3
data/dist/ember.debug.js
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
;(function() {
|
2
2
|
/*!
|
3
3
|
* @overview Ember - JavaScript Application Framework
|
4
|
-
* @copyright Copyright 2011-
|
4
|
+
* @copyright Copyright 2011-2017 Tilde Inc. and contributors
|
5
5
|
* Portions Copyright 2006-2011 Strobe Inc.
|
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.11.0-beta.
|
9
|
+
* @version 2.11.0-beta.8
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, Ember;
|
@@ -6840,16 +6840,15 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
6840
6840
|
|
6841
6841
|
The easiest way to create an `Ember.Component` is via
|
6842
6842
|
a template. If you name a template
|
6843
|
-
`components/my-foo`, you will be able to use
|
6843
|
+
`app/components/my-foo.hbs`, you will be able to use
|
6844
6844
|
`{{my-foo}}` in other templates, which will make
|
6845
6845
|
an instance of the isolated component.
|
6846
6846
|
|
6847
|
-
```
|
6848
|
-
{{
|
6847
|
+
```app/components/my-foo.hbs
|
6848
|
+
{{person-profile person=currentUser}}
|
6849
6849
|
```
|
6850
6850
|
|
6851
|
-
```
|
6852
|
-
<!-- app-profile template -->
|
6851
|
+
```app/components/person-profile.hbs
|
6853
6852
|
<h1>{{person.title}}</h1>
|
6854
6853
|
<img src={{person.avatar}}>
|
6855
6854
|
<p class='signature'>{{person.signature}}</p>
|
@@ -6861,14 +6860,13 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
6861
6860
|
context of the surrounding context or outer controller:
|
6862
6861
|
|
6863
6862
|
```handlebars
|
6864
|
-
{{#
|
6863
|
+
{{#person-profile person=currentUser}}
|
6865
6864
|
<p>Admin mode</p>
|
6866
6865
|
{{! Executed in the controller's context. }}
|
6867
|
-
{{/
|
6866
|
+
{{/person-profile}}
|
6868
6867
|
```
|
6869
6868
|
|
6870
|
-
```
|
6871
|
-
<!-- app-profile template -->
|
6869
|
+
```app/components/person-profile.hbs
|
6872
6870
|
<h1>{{person.title}}</h1>
|
6873
6871
|
{{! Executed in the component's context. }}
|
6874
6872
|
{{yield}} {{! block contents }}
|
@@ -6877,16 +6875,17 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
6877
6875
|
If you want to customize the component, in order to
|
6878
6876
|
handle events or actions, you implement a subclass
|
6879
6877
|
of `Ember.Component` named after the name of the
|
6880
|
-
component.
|
6881
|
-
your subclass like `AppProfileComponent`.
|
6878
|
+
component.
|
6882
6879
|
|
6883
6880
|
For example, you could implement the action
|
6884
|
-
`hello` for the `
|
6881
|
+
`hello` for the `person-profile` component:
|
6885
6882
|
|
6886
|
-
```
|
6887
|
-
|
6883
|
+
```app/components/person-profile.js
|
6884
|
+
import Ember from 'ember';
|
6885
|
+
|
6886
|
+
export default Ember.Component.extend({
|
6888
6887
|
actions: {
|
6889
|
-
hello
|
6888
|
+
hello(name) {
|
6890
6889
|
console.log("Hello", name);
|
6891
6890
|
}
|
6892
6891
|
}
|
@@ -6895,19 +6894,423 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
6895
6894
|
|
6896
6895
|
And then use it in the component's template:
|
6897
6896
|
|
6898
|
-
```
|
6899
|
-
<!-- app-profile template -->
|
6897
|
+
```app/templates/components/person-profile.hbs
|
6900
6898
|
<h1>{{person.title}}</h1>
|
6901
6899
|
{{yield}} <!-- block contents -->
|
6902
6900
|
<button {{action 'hello' person.name}}>
|
6903
6901
|
Say Hello to {{person.name}}
|
6904
6902
|
</button>
|
6905
6903
|
```
|
6904
|
+
|
6906
6905
|
Components must have a `-` in their name to avoid
|
6907
6906
|
conflicts with built-in controls that wrap HTML
|
6908
6907
|
elements. This is consistent with the same
|
6909
6908
|
requirement in web components.
|
6910
6909
|
|
6910
|
+
|
6911
|
+
## HTML Tag
|
6912
|
+
|
6913
|
+
The default HTML tag name used for a component's DOM representation is `div`.
|
6914
|
+
This can be customized by setting the `tagName` property.
|
6915
|
+
The following component class:
|
6916
|
+
|
6917
|
+
```app/components/emphasized-paragraph.js
|
6918
|
+
import Ember from 'ember';
|
6919
|
+
|
6920
|
+
export default Ember.Component.extend({
|
6921
|
+
tagName: 'em'
|
6922
|
+
});
|
6923
|
+
```
|
6924
|
+
|
6925
|
+
Would result in instances with the following HTML:
|
6926
|
+
|
6927
|
+
```html
|
6928
|
+
<em id="ember1" class="ember-view"></em>
|
6929
|
+
```
|
6930
|
+
|
6931
|
+
|
6932
|
+
## HTML `class` Attribute
|
6933
|
+
|
6934
|
+
The HTML `class` attribute of a component's tag can be set by providing a
|
6935
|
+
`classNames` property that is set to an array of strings:
|
6936
|
+
|
6937
|
+
```app/components/my-widget.js
|
6938
|
+
import Ember from 'ember';
|
6939
|
+
|
6940
|
+
export default Ember.Component.extend({
|
6941
|
+
classNames: ['my-class', 'my-other-class']
|
6942
|
+
});
|
6943
|
+
```
|
6944
|
+
|
6945
|
+
Will result in component instances with an HTML representation of:
|
6946
|
+
|
6947
|
+
```html
|
6948
|
+
<div id="ember1" class="ember-view my-class my-other-class"></div>
|
6949
|
+
```
|
6950
|
+
|
6951
|
+
`class` attribute values can also be set by providing a `classNameBindings`
|
6952
|
+
property set to an array of properties names for the component. The return value
|
6953
|
+
of these properties will be added as part of the value for the components's `class`
|
6954
|
+
attribute. These properties can be computed properties:
|
6955
|
+
|
6956
|
+
```app/components/my-widget.js
|
6957
|
+
import Ember from 'ember';
|
6958
|
+
|
6959
|
+
export default Ember.Component.extend({
|
6960
|
+
classNameBindings: ['propertyA', 'propertyB'],
|
6961
|
+
propertyA: 'from-a',
|
6962
|
+
propertyB: Ember.computed(function() {
|
6963
|
+
if (someLogic) { return 'from-b'; }
|
6964
|
+
})
|
6965
|
+
});
|
6966
|
+
```
|
6967
|
+
|
6968
|
+
Will result in component instances with an HTML representation of:
|
6969
|
+
|
6970
|
+
```html
|
6971
|
+
<div id="ember1" class="ember-view from-a from-b"></div>
|
6972
|
+
```
|
6973
|
+
|
6974
|
+
If the value of a class name binding returns a boolean the property name
|
6975
|
+
itself will be used as the class name if the property is true.
|
6976
|
+
The class name will not be added if the value is `false` or `undefined`.
|
6977
|
+
|
6978
|
+
```app/components/my-widget.js
|
6979
|
+
import Ember from 'ember';
|
6980
|
+
|
6981
|
+
export default Ember.Component.extend({
|
6982
|
+
classNameBindings: ['hovered'],
|
6983
|
+
hovered: true
|
6984
|
+
});
|
6985
|
+
```
|
6986
|
+
|
6987
|
+
Will result in component instances with an HTML representation of:
|
6988
|
+
|
6989
|
+
```html
|
6990
|
+
<div id="ember1" class="ember-view hovered"></div>
|
6991
|
+
```
|
6992
|
+
|
6993
|
+
When using boolean class name bindings you can supply a string value other
|
6994
|
+
than the property name for use as the `class` HTML attribute by appending the
|
6995
|
+
preferred value after a ":" character when defining the binding:
|
6996
|
+
|
6997
|
+
```app/components/my-widget.js
|
6998
|
+
import Ember from 'ember';
|
6999
|
+
|
7000
|
+
export default Ember.Component.extend({
|
7001
|
+
classNameBindings: ['awesome:so-very-cool'],
|
7002
|
+
awesome: true
|
7003
|
+
});
|
7004
|
+
```
|
7005
|
+
|
7006
|
+
Will result in component instances with an HTML representation of:
|
7007
|
+
|
7008
|
+
```html
|
7009
|
+
<div id="ember1" class="ember-view so-very-cool"></div>
|
7010
|
+
```
|
7011
|
+
|
7012
|
+
Boolean value class name bindings whose property names are in a
|
7013
|
+
camelCase-style format will be converted to a dasherized format:
|
7014
|
+
|
7015
|
+
```app/components/my-widget.js
|
7016
|
+
import Ember from 'ember';
|
7017
|
+
|
7018
|
+
export default Ember.Component.extend({
|
7019
|
+
classNameBindings: ['isUrgent'],
|
7020
|
+
isUrgent: true
|
7021
|
+
});
|
7022
|
+
```
|
7023
|
+
|
7024
|
+
Will result in component instances with an HTML representation of:
|
7025
|
+
|
7026
|
+
```html
|
7027
|
+
<div id="ember1" class="ember-view is-urgent"></div>
|
7028
|
+
```
|
7029
|
+
|
7030
|
+
Class name bindings can also refer to object values that are found by
|
7031
|
+
traversing a path relative to the component itself:
|
7032
|
+
|
7033
|
+
```app/components/my-widget.js
|
7034
|
+
import Ember from 'ember';
|
7035
|
+
|
7036
|
+
export default Ember.Component.extend({
|
7037
|
+
classNameBindings: ['messages.empty'],
|
7038
|
+
messages: Ember.Object.create({
|
7039
|
+
empty: true
|
7040
|
+
})
|
7041
|
+
});
|
7042
|
+
```
|
7043
|
+
|
7044
|
+
Will result in component instances with an HTML representation of:
|
7045
|
+
|
7046
|
+
```html
|
7047
|
+
<div id="ember1" class="ember-view empty"></div>
|
7048
|
+
```
|
7049
|
+
|
7050
|
+
If you want to add a class name for a property which evaluates to true and
|
7051
|
+
and a different class name if it evaluates to false, you can pass a binding
|
7052
|
+
like this:
|
7053
|
+
|
7054
|
+
```app/components/my-widget.js
|
7055
|
+
import Ember from 'ember';
|
7056
|
+
|
7057
|
+
export default Ember.Component.extend({
|
7058
|
+
classNameBindings: ['isEnabled:enabled:disabled'],
|
7059
|
+
isEnabled: true
|
7060
|
+
});
|
7061
|
+
```
|
7062
|
+
|
7063
|
+
Will result in component instances with an HTML representation of:
|
7064
|
+
|
7065
|
+
```html
|
7066
|
+
<div id="ember1" class="ember-view enabled"></div>
|
7067
|
+
```
|
7068
|
+
|
7069
|
+
When isEnabled is `false`, the resulting HTML representation looks like
|
7070
|
+
this:
|
7071
|
+
|
7072
|
+
```html
|
7073
|
+
<div id="ember1" class="ember-view disabled"></div>
|
7074
|
+
```
|
7075
|
+
|
7076
|
+
This syntax offers the convenience to add a class if a property is `false`:
|
7077
|
+
|
7078
|
+
```app/components/my-widget.js
|
7079
|
+
import Ember from 'ember';
|
7080
|
+
|
7081
|
+
// Applies no class when isEnabled is true and class 'disabled' when isEnabled is false
|
7082
|
+
export default Ember.Component.extend({
|
7083
|
+
classNameBindings: ['isEnabled::disabled'],
|
7084
|
+
isEnabled: true
|
7085
|
+
});
|
7086
|
+
```
|
7087
|
+
|
7088
|
+
Will result in component instances with an HTML representation of:
|
7089
|
+
|
7090
|
+
```html
|
7091
|
+
<div id="ember1" class="ember-view"></div>
|
7092
|
+
```
|
7093
|
+
|
7094
|
+
When the `isEnabled` property on the component is set to `false`, it will result
|
7095
|
+
in component instances with an HTML representation of:
|
7096
|
+
|
7097
|
+
```html
|
7098
|
+
<div id="ember1" class="ember-view disabled"></div>
|
7099
|
+
```
|
7100
|
+
|
7101
|
+
Updates to the value of a class name binding will result in automatic
|
7102
|
+
update of the HTML `class` attribute in the component's rendered HTML
|
7103
|
+
representation. If the value becomes `false` or `undefined` the class name
|
7104
|
+
will be removed.
|
7105
|
+
Both `classNames` and `classNameBindings` are concatenated properties. See
|
7106
|
+
[Ember.Object](/api/classes/Ember.Object.html) documentation for more
|
7107
|
+
information about concatenated properties.
|
7108
|
+
|
7109
|
+
|
7110
|
+
## HTML Attributes
|
7111
|
+
|
7112
|
+
The HTML attribute section of a component's tag can be set by providing an
|
7113
|
+
`attributeBindings` property set to an array of property names on the component.
|
7114
|
+
The return value of these properties will be used as the value of the component's
|
7115
|
+
HTML associated attribute:
|
7116
|
+
|
7117
|
+
```app/components/my-anchor.js
|
7118
|
+
import Ember from 'ember';
|
7119
|
+
|
7120
|
+
export default Ember.Component.extend({
|
7121
|
+
tagName: 'a',
|
7122
|
+
attributeBindings: ['href'],
|
7123
|
+
href: 'http://google.com'
|
7124
|
+
});
|
7125
|
+
```
|
7126
|
+
|
7127
|
+
Will result in component instances with an HTML representation of:
|
7128
|
+
|
7129
|
+
```html
|
7130
|
+
<a id="ember1" class="ember-view" href="http://google.com"></a>
|
7131
|
+
```
|
7132
|
+
|
7133
|
+
One property can be mapped on to another by placing a ":" between
|
7134
|
+
the source property and the destination property:
|
7135
|
+
|
7136
|
+
```app/components/my-anchor.js
|
7137
|
+
import Ember from 'ember';
|
7138
|
+
|
7139
|
+
export default Ember.Component.extend({
|
7140
|
+
tagName: 'a',
|
7141
|
+
attributeBindings: ['url:href'],
|
7142
|
+
url: 'http://google.com'
|
7143
|
+
});
|
7144
|
+
```
|
7145
|
+
|
7146
|
+
Will result in component instances with an HTML representation of:
|
7147
|
+
|
7148
|
+
```html
|
7149
|
+
<a id="ember1" class="ember-view" href="http://google.com"></a>
|
7150
|
+
```
|
7151
|
+
|
7152
|
+
Namespaced attributes (e.g. `xlink:href`) are supported, but have to be
|
7153
|
+
mapped, since `:` is not a valid character for properties in Javascript:
|
7154
|
+
|
7155
|
+
```app/components/my-use.js
|
7156
|
+
import Ember from 'ember';
|
7157
|
+
|
7158
|
+
export default Ember.Component.extend({
|
7159
|
+
tagName: 'use',
|
7160
|
+
attributeBindings: ['xlinkHref:xlink:href'],
|
7161
|
+
xlinkHref: '#triangle'
|
7162
|
+
});
|
7163
|
+
```
|
7164
|
+
|
7165
|
+
Will result in component instances with an HTML representation of:
|
7166
|
+
|
7167
|
+
```html
|
7168
|
+
<use xlink:href="#triangle"></use>
|
7169
|
+
```
|
7170
|
+
|
7171
|
+
If the return value of an `attributeBindings` monitored property is a boolean
|
7172
|
+
the attribute will be present or absent depending on the value:
|
7173
|
+
|
7174
|
+
```app/components/my-text-input.js
|
7175
|
+
import Ember from 'ember';
|
7176
|
+
|
7177
|
+
export default Ember.Component.extend({
|
7178
|
+
tagName: 'input',
|
7179
|
+
attributeBindings: ['disabled'],
|
7180
|
+
disabled: false
|
7181
|
+
});
|
7182
|
+
```
|
7183
|
+
|
7184
|
+
Will result in a component instance with an HTML representation of:
|
7185
|
+
|
7186
|
+
```html
|
7187
|
+
<input id="ember1" class="ember-view" />
|
7188
|
+
```
|
7189
|
+
|
7190
|
+
`attributeBindings` can refer to computed properties:
|
7191
|
+
|
7192
|
+
```app/components/my-text-input.js
|
7193
|
+
import Ember from 'ember';
|
7194
|
+
|
7195
|
+
export default Ember.Component.extend({
|
7196
|
+
tagName: 'input',
|
7197
|
+
attributeBindings: ['disabled'],
|
7198
|
+
disabled: Ember.computed(function() {
|
7199
|
+
if (someLogic) {
|
7200
|
+
return true;
|
7201
|
+
} else {
|
7202
|
+
return false;
|
7203
|
+
}
|
7204
|
+
})
|
7205
|
+
});
|
7206
|
+
```
|
7207
|
+
|
7208
|
+
To prevent setting an attribute altogether, use `null` or `undefined` as the
|
7209
|
+
return value of the `attributeBindings` monitored property:
|
7210
|
+
|
7211
|
+
```app/components/my-text-input.js
|
7212
|
+
import Ember from 'ember';
|
7213
|
+
|
7214
|
+
export default Ember.Component.extend({
|
7215
|
+
tagName: 'form',
|
7216
|
+
attributeBindings: ['novalidate'],
|
7217
|
+
novalidate: null
|
7218
|
+
});
|
7219
|
+
```
|
7220
|
+
|
7221
|
+
Updates to the property of an attribute binding will result in automatic
|
7222
|
+
update of the HTML attribute in the component's rendered HTML representation.
|
7223
|
+
`attributeBindings` is a concatenated property. See [Ember.Object](/api/classes/Ember.Object.html)
|
7224
|
+
documentation for more information about concatenated properties.
|
7225
|
+
|
7226
|
+
|
7227
|
+
## Layouts
|
7228
|
+
|
7229
|
+
See [Ember.Templates.helpers.yield](/api/classes/Ember.Templates.helpers.html#method_yield)
|
7230
|
+
for more information.
|
7231
|
+
|
7232
|
+
|
7233
|
+
## Responding to Browser Events
|
7234
|
+
|
7235
|
+
Components can respond to user-initiated events in one of three ways: method
|
7236
|
+
implementation, through an event manager, and through `{{action}}` helper use
|
7237
|
+
in their template or layout.
|
7238
|
+
|
7239
|
+
|
7240
|
+
### Method Implementation
|
7241
|
+
|
7242
|
+
Components can respond to user-initiated events by implementing a method that
|
7243
|
+
matches the event name. A `jQuery.Event` object will be passed as the
|
7244
|
+
argument to this method.
|
7245
|
+
|
7246
|
+
```app/components/my-widget.js
|
7247
|
+
import Ember from 'ember';
|
7248
|
+
|
7249
|
+
export default Ember.Component.extend({
|
7250
|
+
click(event) {
|
7251
|
+
// will be called when an instance's
|
7252
|
+
// rendered element is clicked
|
7253
|
+
}
|
7254
|
+
});
|
7255
|
+
```
|
7256
|
+
|
7257
|
+
|
7258
|
+
### `{{action}}` Helper
|
7259
|
+
|
7260
|
+
See [Ember.Templates.helpers.action](/api/classes/Ember.Templates.helpers.html#method_action).
|
7261
|
+
|
7262
|
+
|
7263
|
+
### Event Names
|
7264
|
+
|
7265
|
+
All of the event handling approaches described above respond to the same set
|
7266
|
+
of events. The names of the built-in events are listed below. (The hash of
|
7267
|
+
built-in events exists in `Ember.EventDispatcher`.) Additional, custom events
|
7268
|
+
can be registered by using `Ember.Application.customEvents`.
|
7269
|
+
|
7270
|
+
Touch events:
|
7271
|
+
|
7272
|
+
* `touchStart`
|
7273
|
+
* `touchMove`
|
7274
|
+
* `touchEnd`
|
7275
|
+
* `touchCancel`
|
7276
|
+
|
7277
|
+
Keyboard events:
|
7278
|
+
|
7279
|
+
* `keyDown`
|
7280
|
+
* `keyUp`
|
7281
|
+
* `keyPress`
|
7282
|
+
|
7283
|
+
Mouse events:
|
7284
|
+
|
7285
|
+
* `mouseDown`
|
7286
|
+
* `mouseUp`
|
7287
|
+
* `contextMenu`
|
7288
|
+
* `click`
|
7289
|
+
* `doubleClick`
|
7290
|
+
* `mouseMove`
|
7291
|
+
* `focusIn`
|
7292
|
+
* `focusOut`
|
7293
|
+
* `mouseEnter`
|
7294
|
+
* `mouseLeave`
|
7295
|
+
|
7296
|
+
Form events:
|
7297
|
+
|
7298
|
+
* `submit`
|
7299
|
+
* `change`
|
7300
|
+
* `focusIn`
|
7301
|
+
* `focusOut`
|
7302
|
+
* `input`
|
7303
|
+
|
7304
|
+
HTML5 drag and drop events:
|
7305
|
+
|
7306
|
+
* `dragStart`
|
7307
|
+
* `drag`
|
7308
|
+
* `dragEnter`
|
7309
|
+
* `dragLeave`
|
7310
|
+
* `dragOver`
|
7311
|
+
* `dragEnd`
|
7312
|
+
* `drop`
|
7313
|
+
|
6911
7314
|
@class Component
|
6912
7315
|
@namespace Ember
|
6913
7316
|
@extends Ember.CoreView
|
@@ -6915,6 +7318,7 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
6915
7318
|
@uses Ember.ClassNamesSupport
|
6916
7319
|
@uses Ember.ActionSupport
|
6917
7320
|
@uses Ember.ViewMixin
|
7321
|
+
@uses Ember.ViewStateSupport
|
6918
7322
|
@public
|
6919
7323
|
*/
|
6920
7324
|
var Component = _emberViews.CoreView.extend(_emberViews.ChildViewsSupport, _emberViews.ViewStateSupport, _emberViews.ClassNamesSupport, _emberRuntime.TargetActionSupport, _emberViews.ActionSupport, _emberViews.ViewMixin, (_CoreView$extend = {
|
@@ -6955,6 +7359,8 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
6955
7359
|
}
|
6956
7360
|
}
|
6957
7361
|
})());
|
7362
|
+
|
7363
|
+
_emberMetal.assert('You cannot use a computed property for the component\'s `tagName` (' + this + ').', !(this.tagName && this.tagName.isDescriptor));
|
6958
7364
|
},
|
6959
7365
|
|
6960
7366
|
rerender: function () {
|
@@ -7006,8 +7412,8 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
7006
7412
|
`name` and `age`:
|
7007
7413
|
```javascript
|
7008
7414
|
let MyComponent = Ember.Component.extend;
|
7009
|
-
|
7010
|
-
|
7415
|
+
MyComponent.reopenClass({
|
7416
|
+
positionalParams: ['name', 'age']
|
7011
7417
|
});
|
7012
7418
|
```
|
7013
7419
|
It can then be invoked like this:
|
@@ -7016,14 +7422,14 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
7016
7422
|
```
|
7017
7423
|
The parameters can be referred to just like named parameters:
|
7018
7424
|
```hbs
|
7019
|
-
Name: {{
|
7425
|
+
Name: {{name}}, Age: {{age}}.
|
7020
7426
|
```
|
7021
7427
|
Using a string instead of an array allows for an arbitrary number of
|
7022
7428
|
parameters:
|
7023
7429
|
```javascript
|
7024
7430
|
let MyComponent = Ember.Component.extend;
|
7025
|
-
|
7026
|
-
|
7431
|
+
MyComponent.reopenClass({
|
7432
|
+
positionalParams: 'names'
|
7027
7433
|
});
|
7028
7434
|
```
|
7029
7435
|
It can then be invoked like this:
|
@@ -7032,7 +7438,7 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
7032
7438
|
```
|
7033
7439
|
The parameters can then be referred to by enumerating over the list:
|
7034
7440
|
```hbs
|
7035
|
-
{{#each
|
7441
|
+
{{#each names as |name|}}{{name}}{{/each}}
|
7036
7442
|
```
|
7037
7443
|
@static
|
7038
7444
|
@public
|
@@ -7140,6 +7546,67 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
|
|
7140
7546
|
@since 1.13.0
|
7141
7547
|
*/
|
7142
7548
|
|
7549
|
+
/**
|
7550
|
+
A component may contain a layout. A layout is a regular template but
|
7551
|
+
supersedes the `template` property during rendering. It is the
|
7552
|
+
responsibility of the layout template to retrieve the `template`
|
7553
|
+
property from the component (or alternatively, call `Handlebars.helpers.yield`,
|
7554
|
+
`{{yield}}`) to render it in the correct location.
|
7555
|
+
This is useful for a component that has a shared wrapper, but which delegates
|
7556
|
+
the rendering of the contents of the wrapper to the `template` property
|
7557
|
+
on a subclass.
|
7558
|
+
@property layout
|
7559
|
+
@type Function
|
7560
|
+
@public
|
7561
|
+
*/
|
7562
|
+
|
7563
|
+
/**
|
7564
|
+
The name of the layout to lookup if no layout is provided.
|
7565
|
+
By default `Ember.Component` will lookup a template with this name in
|
7566
|
+
`Ember.TEMPLATES` (a shared global object).
|
7567
|
+
@property layoutName
|
7568
|
+
@type String
|
7569
|
+
@default null
|
7570
|
+
@private
|
7571
|
+
*/
|
7572
|
+
|
7573
|
+
/**
|
7574
|
+
Returns a jQuery object for this component's element. If you pass in a selector
|
7575
|
+
string, this method will return a jQuery object, using the current element
|
7576
|
+
as its buffer.
|
7577
|
+
For example, calling `component.$('li')` will return a jQuery object containing
|
7578
|
+
all of the `li` elements inside the DOM element of this component.
|
7579
|
+
@method $
|
7580
|
+
@param {String} [selector] a jQuery-compatible selector string
|
7581
|
+
@return {jQuery} the jQuery object for the DOM node
|
7582
|
+
@public
|
7583
|
+
*/
|
7584
|
+
|
7585
|
+
/**
|
7586
|
+
The HTML `id` of the component's element in the DOM. You can provide this
|
7587
|
+
value yourself but it must be unique (just as in HTML):
|
7588
|
+
```handlebars
|
7589
|
+
{{my-component elementId="a-really-cool-id"}}
|
7590
|
+
```
|
7591
|
+
If not manually set a default value will be provided by the framework.
|
7592
|
+
Once rendered an element's `elementId` is considered immutable and you
|
7593
|
+
should never change it. If you need to compute a dynamic value for the
|
7594
|
+
`elementId`, you should do this when the component or element is being
|
7595
|
+
instantiated:
|
7596
|
+
```javascript
|
7597
|
+
export default Ember.Component.extend({
|
7598
|
+
init() {
|
7599
|
+
this._super(...arguments);
|
7600
|
+
var index = this.get('index');
|
7601
|
+
this.set('elementId', `component-id${index}`);
|
7602
|
+
}
|
7603
|
+
});
|
7604
|
+
```
|
7605
|
+
@property elementId
|
7606
|
+
@type String
|
7607
|
+
@public
|
7608
|
+
*/
|
7609
|
+
|
7143
7610
|
/**
|
7144
7611
|
If `false`, the view will appear hidden in DOM.
|
7145
7612
|
@property isVisible
|
@@ -7563,7 +8030,7 @@ enifed('ember-glimmer/components/link-to', ['exports', 'ember-console', 'ember-m
|
|
7563
8030
|
@namespace Ember
|
7564
8031
|
@extends Ember.Component
|
7565
8032
|
@see {Ember.Templates.helpers.link-to}
|
7566
|
-
@
|
8033
|
+
@public
|
7567
8034
|
**/
|
7568
8035
|
var LinkComponent = _emberGlimmerComponent.default.extend({
|
7569
8036
|
layout: _emberGlimmerTemplatesLinkTo.default,
|
@@ -8423,7 +8890,7 @@ enifed('ember-glimmer/dom', ['exports', 'glimmer-runtime', 'glimmer-node'], func
|
|
8423
8890
|
exports.DOMTreeConstruction = _glimmerRuntime.DOMTreeConstruction;
|
8424
8891
|
exports.NodeDOMTreeConstruction = _glimmerNode.NodeDOMTreeConstruction;
|
8425
8892
|
});
|
8426
|
-
enifed('ember-glimmer/environment', ['exports', 'ember-utils', 'ember-metal', 'ember-views', 'glimmer-runtime', 'ember-glimmer/syntax/curly-component', 'ember-glimmer/syntax', 'ember-glimmer/syntax/dynamic-component', 'ember-glimmer/utils/iterable', 'ember-glimmer/utils/references', 'ember-glimmer/helpers/if-unless', 'ember-glimmer/utils/bindings', 'ember-glimmer/helpers/action', 'ember-glimmer/helpers/component', 'ember-glimmer/helpers/concat', 'ember-glimmer/helpers/debugger', 'ember-glimmer/helpers/get', 'ember-glimmer/helpers/hash', 'ember-glimmer/helpers/loc', 'ember-glimmer/helpers/log', 'ember-glimmer/helpers/mut', 'ember-glimmer/helpers/readonly', 'ember-glimmer/helpers/unbound', 'ember-glimmer/helpers/-class', 'ember-glimmer/helpers/-input-type', 'ember-glimmer/helpers/query-param', 'ember-glimmer/helpers/each-in', 'ember-glimmer/helpers/-normalize-class', 'ember-glimmer/helpers/-html-safe', 'ember-glimmer/protocol-for-url', 'ember-glimmer/modifiers/action'], function (exports, _emberUtils, _emberMetal, _emberViews, _glimmerRuntime, _emberGlimmerSyntaxCurlyComponent, _emberGlimmerSyntax, _emberGlimmerSyntaxDynamicComponent, _emberGlimmerUtilsIterable, _emberGlimmerUtilsReferences, _emberGlimmerHelpersIfUnless, _emberGlimmerUtilsBindings, _emberGlimmerHelpersAction, _emberGlimmerHelpersComponent, _emberGlimmerHelpersConcat, _emberGlimmerHelpersDebugger, _emberGlimmerHelpersGet, _emberGlimmerHelpersHash, _emberGlimmerHelpersLoc, _emberGlimmerHelpersLog, _emberGlimmerHelpersMut, _emberGlimmerHelpersReadonly, _emberGlimmerHelpersUnbound, _emberGlimmerHelpersClass, _emberGlimmerHelpersInputType, _emberGlimmerHelpersQueryParam, _emberGlimmerHelpersEachIn, _emberGlimmerHelpersNormalizeClass, _emberGlimmerHelpersHtmlSafe, _emberGlimmerProtocolForUrl, _emberGlimmerModifiersAction) {
|
8893
|
+
enifed('ember-glimmer/environment', ['exports', 'ember-utils', 'ember-metal', 'ember-views', 'glimmer-runtime', 'ember-glimmer/syntax/curly-component', 'ember-glimmer/syntax', 'ember-glimmer/syntax/dynamic-component', 'ember-glimmer/utils/iterable', 'ember-glimmer/utils/references', 'ember-glimmer/utils/debug-stack', 'ember-glimmer/helpers/if-unless', 'ember-glimmer/utils/bindings', 'ember-glimmer/helpers/action', 'ember-glimmer/helpers/component', 'ember-glimmer/helpers/concat', 'ember-glimmer/helpers/debugger', 'ember-glimmer/helpers/get', 'ember-glimmer/helpers/hash', 'ember-glimmer/helpers/loc', 'ember-glimmer/helpers/log', 'ember-glimmer/helpers/mut', 'ember-glimmer/helpers/readonly', 'ember-glimmer/helpers/unbound', 'ember-glimmer/helpers/-class', 'ember-glimmer/helpers/-input-type', 'ember-glimmer/helpers/query-param', 'ember-glimmer/helpers/each-in', 'ember-glimmer/helpers/-normalize-class', 'ember-glimmer/helpers/-html-safe', 'ember-glimmer/protocol-for-url', 'ember-glimmer/modifiers/action'], function (exports, _emberUtils, _emberMetal, _emberViews, _glimmerRuntime, _emberGlimmerSyntaxCurlyComponent, _emberGlimmerSyntax, _emberGlimmerSyntaxDynamicComponent, _emberGlimmerUtilsIterable, _emberGlimmerUtilsReferences, _emberGlimmerUtilsDebugStack, _emberGlimmerHelpersIfUnless, _emberGlimmerUtilsBindings, _emberGlimmerHelpersAction, _emberGlimmerHelpersComponent, _emberGlimmerHelpersConcat, _emberGlimmerHelpersDebugger, _emberGlimmerHelpersGet, _emberGlimmerHelpersHash, _emberGlimmerHelpersLoc, _emberGlimmerHelpersLog, _emberGlimmerHelpersMut, _emberGlimmerHelpersReadonly, _emberGlimmerHelpersUnbound, _emberGlimmerHelpersClass, _emberGlimmerHelpersInputType, _emberGlimmerHelpersQueryParam, _emberGlimmerHelpersEachIn, _emberGlimmerHelpersNormalizeClass, _emberGlimmerHelpersHtmlSafe, _emberGlimmerProtocolForUrl, _emberGlimmerModifiersAction) {
|
8427
8894
|
'use strict';
|
8428
8895
|
|
8429
8896
|
var builtInComponents = {
|
@@ -8533,6 +9000,10 @@ enifed('ember-glimmer/environment', ['exports', 'ember-utils', 'ember-metal', 'e
|
|
8533
9000
|
'-html-safe': _emberGlimmerHelpersHtmlSafe.default,
|
8534
9001
|
'-get-dynamic-var': _glimmerRuntime.getDynamicVar
|
8535
9002
|
};
|
9003
|
+
|
9004
|
+
_emberMetal.runInDebug(function () {
|
9005
|
+
return _this.debugStack = new _emberGlimmerUtilsDebugStack.default();
|
9006
|
+
});
|
8536
9007
|
}
|
8537
9008
|
|
8538
9009
|
// Hello future traveler, welcome to the world of syntax refinement.
|
@@ -11891,7 +12362,28 @@ enifed('ember-glimmer/syntax', ['exports', 'ember-glimmer/syntax/render', 'ember
|
|
11891
12362
|
return _class2;
|
11892
12363
|
})());
|
11893
12364
|
});
|
11894
|
-
enifed('ember-glimmer/syntax/
|
12365
|
+
enifed('ember-glimmer/syntax/abstract-manager', ['exports', 'ember-metal'], function (exports, _emberMetal) {
|
12366
|
+
'use strict';
|
12367
|
+
|
12368
|
+
var AbstractManager = function AbstractManager() {
|
12369
|
+
babelHelpers.classCallCheck(this, AbstractManager);
|
12370
|
+
};
|
12371
|
+
|
12372
|
+
_emberMetal.runInDebug(function () {
|
12373
|
+
AbstractManager.prototype._pushToDebugStack = function (name, environment) {
|
12374
|
+
this.debugStack = environment.debugStack;
|
12375
|
+
this.debugStack.push(name);
|
12376
|
+
};
|
12377
|
+
|
12378
|
+
AbstractManager.prototype._pushEngineToDebugStack = function (name, environment) {
|
12379
|
+
this.debugStack = environment.debugStack;
|
12380
|
+
this.debugStack.pushEngine(name);
|
12381
|
+
};
|
12382
|
+
});
|
12383
|
+
|
12384
|
+
exports.default = AbstractManager;
|
12385
|
+
});
|
12386
|
+
enifed('ember-glimmer/syntax/curly-component', ['exports', 'ember-utils', 'glimmer-runtime', 'ember-glimmer/utils/bindings', 'ember-glimmer/component', 'ember-metal', 'ember-views', 'ember-glimmer/utils/process-args', 'container', 'ember-glimmer/syntax/abstract-manager'], function (exports, _emberUtils, _glimmerRuntime, _emberGlimmerUtilsBindings, _emberGlimmerComponent, _emberMetal, _emberViews, _emberGlimmerUtilsProcessArgs, _container, _emberGlimmerSyntaxAbstractManager) {
|
11895
12387
|
'use strict';
|
11896
12388
|
|
11897
12389
|
exports.validatePositionalParameters = validatePositionalParameters;
|
@@ -12061,9 +12553,13 @@ babelHelpers.classCallCheck(this, ComponentStateBucket);
|
|
12061
12553
|
return component.instrumentDetails({ initialRender: false });
|
12062
12554
|
}
|
12063
12555
|
|
12064
|
-
var CurlyComponentManager = (function () {
|
12556
|
+
var CurlyComponentManager = (function (_AbstractManager) {
|
12557
|
+
babelHelpers.inherits(CurlyComponentManager, _AbstractManager);
|
12558
|
+
|
12065
12559
|
function CurlyComponentManager() {
|
12066
12560
|
babelHelpers.classCallCheck(this, CurlyComponentManager);
|
12561
|
+
|
12562
|
+
_AbstractManager.apply(this, arguments);
|
12067
12563
|
}
|
12068
12564
|
|
12069
12565
|
CurlyComponentManager.prototype.prepareArgs = function prepareArgs(definition, args) {
|
@@ -12073,6 +12569,12 @@ babelHelpers.classCallCheck(this, CurlyComponentManager);
|
|
12073
12569
|
};
|
12074
12570
|
|
12075
12571
|
CurlyComponentManager.prototype.create = function create(environment, definition, args, dynamicScope, callerSelfRef, hasBlock) {
|
12572
|
+
var _this = this;
|
12573
|
+
|
12574
|
+
_emberMetal.runInDebug(function () {
|
12575
|
+
return _this._pushToDebugStack('component:' + definition.name, environment);
|
12576
|
+
});
|
12577
|
+
|
12076
12578
|
var parentView = dynamicScope.view;
|
12077
12579
|
|
12078
12580
|
var klass = definition.ComponentClass;
|
@@ -12201,8 +12703,14 @@ babelHelpers.classCallCheck(this, CurlyComponentManager);
|
|
12201
12703
|
};
|
12202
12704
|
|
12203
12705
|
CurlyComponentManager.prototype.didRenderLayout = function didRenderLayout(bucket, bounds) {
|
12706
|
+
var _this2 = this;
|
12707
|
+
|
12204
12708
|
bucket.component[_emberGlimmerComponent.BOUNDS] = bounds;
|
12205
12709
|
bucket.finalize();
|
12710
|
+
|
12711
|
+
_emberMetal.runInDebug(function () {
|
12712
|
+
return _this2.debugStack.pop();
|
12713
|
+
});
|
12206
12714
|
};
|
12207
12715
|
|
12208
12716
|
CurlyComponentManager.prototype.getTag = function getTag(_ref3) {
|
@@ -12223,11 +12731,17 @@ babelHelpers.classCallCheck(this, CurlyComponentManager);
|
|
12223
12731
|
};
|
12224
12732
|
|
12225
12733
|
CurlyComponentManager.prototype.update = function update(bucket, _, dynamicScope) {
|
12734
|
+
var _this3 = this;
|
12735
|
+
|
12226
12736
|
var component = bucket.component;
|
12227
12737
|
var args = bucket.args;
|
12228
12738
|
var argsRevision = bucket.argsRevision;
|
12229
12739
|
var environment = bucket.environment;
|
12230
12740
|
|
12741
|
+
_emberMetal.runInDebug(function () {
|
12742
|
+
return _this3._pushToDebugStack(component._debugContainerKey, environment);
|
12743
|
+
});
|
12744
|
+
|
12231
12745
|
bucket.finalizer = _emberMetal._instrumentStart('render.component', rerenderInstrumentDetails, component);
|
12232
12746
|
|
12233
12747
|
if (!args.tag.validate(argsRevision)) {
|
@@ -12256,7 +12770,13 @@ babelHelpers.classCallCheck(this, CurlyComponentManager);
|
|
12256
12770
|
};
|
12257
12771
|
|
12258
12772
|
CurlyComponentManager.prototype.didUpdateLayout = function didUpdateLayout(bucket) {
|
12773
|
+
var _this4 = this;
|
12774
|
+
|
12259
12775
|
bucket.finalize();
|
12776
|
+
|
12777
|
+
_emberMetal.runInDebug(function () {
|
12778
|
+
return _this4.debugStack.pop();
|
12779
|
+
});
|
12260
12780
|
};
|
12261
12781
|
|
12262
12782
|
CurlyComponentManager.prototype.didUpdate = function didUpdate(_ref5) {
|
@@ -12274,7 +12794,7 @@ babelHelpers.classCallCheck(this, CurlyComponentManager);
|
|
12274
12794
|
};
|
12275
12795
|
|
12276
12796
|
return CurlyComponentManager;
|
12277
|
-
})();
|
12797
|
+
})(_emberGlimmerSyntaxAbstractManager.default);
|
12278
12798
|
|
12279
12799
|
var MANAGER = new CurlyComponentManager();
|
12280
12800
|
|
@@ -12288,8 +12808,14 @@ babelHelpers.classCallCheck(this, TopComponentManager);
|
|
12288
12808
|
}
|
12289
12809
|
|
12290
12810
|
TopComponentManager.prototype.create = function create(environment, definition, args, dynamicScope, currentScope, hasBlock) {
|
12811
|
+
var _this5 = this;
|
12812
|
+
|
12291
12813
|
var component = definition.ComponentClass;
|
12292
12814
|
|
12815
|
+
_emberMetal.runInDebug(function () {
|
12816
|
+
return _this5._pushToDebugStack(component._debugContainerKey, environment);
|
12817
|
+
});
|
12818
|
+
|
12293
12819
|
var finalizer = _emberMetal._instrumentStart('render.component', initialRenderInstrumentDetails, component);
|
12294
12820
|
|
12295
12821
|
dynamicScope.view = component;
|
@@ -12647,7 +13173,7 @@ enifed('ember-glimmer/syntax/input', ['exports', 'ember-metal', 'ember-glimmer/s
|
|
12647
13173
|
};
|
12648
13174
|
exports.InputSyntax = InputSyntax;
|
12649
13175
|
});
|
12650
|
-
enifed('ember-glimmer/syntax/mount', ['exports', 'glimmer-runtime', 'glimmer-reference', 'ember-metal', 'ember-glimmer/utils/references', 'ember-routing', 'ember-glimmer/syntax/outlet'], function (exports, _glimmerRuntime, _glimmerReference, _emberMetal, _emberGlimmerUtilsReferences, _emberRouting, _emberGlimmerSyntaxOutlet) {
|
13176
|
+
enifed('ember-glimmer/syntax/mount', ['exports', 'glimmer-runtime', 'glimmer-reference', 'ember-metal', 'ember-glimmer/utils/references', 'ember-routing', 'ember-glimmer/syntax/outlet', 'ember-glimmer/syntax/abstract-manager'], function (exports, _glimmerRuntime, _glimmerReference, _emberMetal, _emberGlimmerUtilsReferences, _emberRouting, _emberGlimmerSyntaxOutlet, _emberGlimmerSyntaxAbstractManager) {
|
12651
13177
|
/**
|
12652
13178
|
@module ember
|
12653
13179
|
@submodule ember-glimmer
|
@@ -12709,9 +13235,13 @@ enifed('ember-glimmer/syntax/mount', ['exports', 'glimmer-runtime', 'glimmer-ref
|
|
12709
13235
|
|
12710
13236
|
exports.MountSyntax = MountSyntax;
|
12711
13237
|
|
12712
|
-
var MountManager = (function () {
|
13238
|
+
var MountManager = (function (_AbstractManager) {
|
13239
|
+
babelHelpers.inherits(MountManager, _AbstractManager);
|
13240
|
+
|
12713
13241
|
function MountManager() {
|
12714
13242
|
babelHelpers.classCallCheck(this, MountManager);
|
13243
|
+
|
13244
|
+
_AbstractManager.apply(this, arguments);
|
12715
13245
|
}
|
12716
13246
|
|
12717
13247
|
MountManager.prototype.prepareArgs = function prepareArgs(definition, args) {
|
@@ -12722,6 +13252,12 @@ enifed('ember-glimmer/syntax/mount', ['exports', 'glimmer-runtime', 'glimmer-ref
|
|
12722
13252
|
var name = _ref.name;
|
12723
13253
|
var env = _ref.env;
|
12724
13254
|
|
13255
|
+
var _this = this;
|
13256
|
+
|
13257
|
+
_emberMetal.runInDebug(function () {
|
13258
|
+
return _this._pushEngineToDebugStack('engine:' + name, env);
|
13259
|
+
});
|
13260
|
+
|
12725
13261
|
dynamicScope.outletState = _glimmerReference.UNDEFINED_REFERENCE;
|
12726
13262
|
|
12727
13263
|
var engine = env.owner.buildChildEngineInstance(name);
|
@@ -12757,7 +13293,13 @@ enifed('ember-glimmer/syntax/mount', ['exports', 'glimmer-runtime', 'glimmer-ref
|
|
12757
13293
|
|
12758
13294
|
MountManager.prototype.didCreateElement = function didCreateElement() {};
|
12759
13295
|
|
12760
|
-
MountManager.prototype.didRenderLayout = function didRenderLayout() {
|
13296
|
+
MountManager.prototype.didRenderLayout = function didRenderLayout() {
|
13297
|
+
var _this2 = this;
|
13298
|
+
|
13299
|
+
_emberMetal.runInDebug(function () {
|
13300
|
+
return _this2.debugStack.pop();
|
13301
|
+
});
|
13302
|
+
};
|
12761
13303
|
|
12762
13304
|
MountManager.prototype.didCreate = function didCreate(state) {};
|
12763
13305
|
|
@@ -12768,7 +13310,7 @@ enifed('ember-glimmer/syntax/mount', ['exports', 'glimmer-runtime', 'glimmer-ref
|
|
12768
13310
|
MountManager.prototype.didUpdate = function didUpdate(state) {};
|
12769
13311
|
|
12770
13312
|
return MountManager;
|
12771
|
-
})();
|
13313
|
+
})(_emberGlimmerSyntaxAbstractManager.default);
|
12772
13314
|
|
12773
13315
|
var MOUNT_MANAGER = new MountManager();
|
12774
13316
|
|
@@ -12785,7 +13327,7 @@ enifed('ember-glimmer/syntax/mount', ['exports', 'glimmer-runtime', 'glimmer-ref
|
|
12785
13327
|
return MountDefinition;
|
12786
13328
|
})(_glimmerRuntime.ComponentDefinition);
|
12787
13329
|
});
|
12788
|
-
enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-utils', 'glimmer-runtime', 'ember-metal', 'ember-glimmer/utils/references', 'glimmer-reference'], function (exports, _emberUtils, _glimmerRuntime, _emberMetal, _emberGlimmerUtilsReferences, _glimmerReference) {
|
13330
|
+
enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-utils', 'glimmer-runtime', 'ember-metal', 'ember-glimmer/utils/references', 'glimmer-reference', 'ember-glimmer/syntax/abstract-manager'], function (exports, _emberUtils, _glimmerRuntime, _emberMetal, _emberGlimmerUtilsReferences, _glimmerReference, _emberGlimmerSyntaxAbstractManager) {
|
12789
13331
|
/**
|
12790
13332
|
@module ember
|
12791
13333
|
@submodule ember-glimmer
|
@@ -12974,9 +13516,13 @@ enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-utils', 'glimmer-runtim
|
|
12974
13516
|
return StateBucket;
|
12975
13517
|
})();
|
12976
13518
|
|
12977
|
-
var OutletComponentManager = (function () {
|
13519
|
+
var OutletComponentManager = (function (_AbstractManager) {
|
13520
|
+
babelHelpers.inherits(OutletComponentManager, _AbstractManager);
|
13521
|
+
|
12978
13522
|
function OutletComponentManager() {
|
12979
13523
|
babelHelpers.classCallCheck(this, OutletComponentManager);
|
13524
|
+
|
13525
|
+
_AbstractManager.apply(this, arguments);
|
12980
13526
|
}
|
12981
13527
|
|
12982
13528
|
OutletComponentManager.prototype.prepareArgs = function prepareArgs(definition, args) {
|
@@ -12984,6 +13530,12 @@ enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-utils', 'glimmer-runtim
|
|
12984
13530
|
};
|
12985
13531
|
|
12986
13532
|
OutletComponentManager.prototype.create = function create(environment, definition, args, dynamicScope) {
|
13533
|
+
var _this = this;
|
13534
|
+
|
13535
|
+
_emberMetal.runInDebug(function () {
|
13536
|
+
return _this._pushToDebugStack('template:' + definition.template.meta.moduleName, environment);
|
13537
|
+
});
|
13538
|
+
|
12987
13539
|
var outletStateReference = dynamicScope.outletState = dynamicScope.outletState.get('outlets').get(definition.outletName);
|
12988
13540
|
var outletState = outletStateReference.value();
|
12989
13541
|
return new StateBucket(outletState);
|
@@ -13008,7 +13560,13 @@ enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-utils', 'glimmer-runtim
|
|
13008
13560
|
};
|
13009
13561
|
|
13010
13562
|
OutletComponentManager.prototype.didRenderLayout = function didRenderLayout(bucket) {
|
13563
|
+
var _this2 = this;
|
13564
|
+
|
13011
13565
|
bucket.finalize();
|
13566
|
+
|
13567
|
+
_emberMetal.runInDebug(function () {
|
13568
|
+
return _this2.debugStack.pop();
|
13569
|
+
});
|
13012
13570
|
};
|
13013
13571
|
|
13014
13572
|
OutletComponentManager.prototype.didCreateElement = function didCreateElement() {};
|
@@ -13022,7 +13580,7 @@ enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-utils', 'glimmer-runtim
|
|
13022
13580
|
OutletComponentManager.prototype.didUpdate = function didUpdate(state) {};
|
13023
13581
|
|
13024
13582
|
return OutletComponentManager;
|
13025
|
-
})();
|
13583
|
+
})(_emberGlimmerSyntaxAbstractManager.default);
|
13026
13584
|
|
13027
13585
|
var MANAGER = new OutletComponentManager();
|
13028
13586
|
|
@@ -13036,6 +13594,12 @@ enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-utils', 'glimmer-runtim
|
|
13036
13594
|
}
|
13037
13595
|
|
13038
13596
|
TopLevelOutletComponentManager.prototype.create = function create(environment, definition, args, dynamicScope) {
|
13597
|
+
var _this3 = this;
|
13598
|
+
|
13599
|
+
_emberMetal.runInDebug(function () {
|
13600
|
+
return _this3._pushToDebugStack('template:' + definition.template.meta.moduleName, environment);
|
13601
|
+
});
|
13602
|
+
|
13039
13603
|
return new StateBucket(dynamicScope.outletState.value());
|
13040
13604
|
};
|
13041
13605
|
|
@@ -13116,7 +13680,7 @@ enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-utils', 'glimmer-runtim
|
|
13116
13680
|
|
13117
13681
|
OutletLayoutCompiler.id = 'outlet';
|
13118
13682
|
});
|
13119
|
-
enifed('ember-glimmer/syntax/render', ['exports', 'glimmer-runtime', 'glimmer-reference', 'ember-metal', 'ember-glimmer/utils/references', 'ember-routing', 'ember-glimmer/syntax/outlet'], function (exports, _glimmerRuntime, _glimmerReference, _emberMetal, _emberGlimmerUtilsReferences, _emberRouting, _emberGlimmerSyntaxOutlet) {
|
13683
|
+
enifed('ember-glimmer/syntax/render', ['exports', 'glimmer-runtime', 'glimmer-reference', 'ember-metal', 'ember-glimmer/utils/references', 'ember-routing', 'ember-glimmer/syntax/outlet', 'ember-glimmer/syntax/abstract-manager'], function (exports, _glimmerRuntime, _glimmerReference, _emberMetal, _emberGlimmerUtilsReferences, _emberRouting, _emberGlimmerSyntaxOutlet, _emberGlimmerSyntaxAbstractManager) {
|
13120
13684
|
/**
|
13121
13685
|
@module ember
|
13122
13686
|
@submodule ember-glimmer
|
@@ -13255,9 +13819,13 @@ enifed('ember-glimmer/syntax/render', ['exports', 'glimmer-runtime', 'glimmer-re
|
|
13255
13819
|
|
13256
13820
|
exports.RenderSyntax = RenderSyntax;
|
13257
13821
|
|
13258
|
-
var AbstractRenderManager = (function () {
|
13822
|
+
var AbstractRenderManager = (function (_AbstractManager) {
|
13823
|
+
babelHelpers.inherits(AbstractRenderManager, _AbstractManager);
|
13824
|
+
|
13259
13825
|
function AbstractRenderManager() {
|
13260
13826
|
babelHelpers.classCallCheck(this, AbstractRenderManager);
|
13827
|
+
|
13828
|
+
_AbstractManager.apply(this, arguments);
|
13261
13829
|
}
|
13262
13830
|
|
13263
13831
|
AbstractRenderManager.prototype.prepareArgs = function prepareArgs(definition, args) {
|
@@ -13297,7 +13865,13 @@ enifed('ember-glimmer/syntax/render', ['exports', 'glimmer-runtime', 'glimmer-re
|
|
13297
13865
|
AbstractRenderManager.prototype.didUpdate = function didUpdate() {};
|
13298
13866
|
|
13299
13867
|
return AbstractRenderManager;
|
13300
|
-
})();
|
13868
|
+
})(_emberGlimmerSyntaxAbstractManager.default);
|
13869
|
+
|
13870
|
+
_emberMetal.runInDebug(function () {
|
13871
|
+
AbstractRenderManager.prototype.didRenderLayout = function () {
|
13872
|
+
this.debugStack.pop();
|
13873
|
+
};
|
13874
|
+
});
|
13301
13875
|
|
13302
13876
|
var SingletonRenderManager = (function (_AbstractRenderManager) {
|
13303
13877
|
babelHelpers.inherits(SingletonRenderManager, _AbstractRenderManager);
|
@@ -13309,11 +13883,17 @@ enifed('ember-glimmer/syntax/render', ['exports', 'glimmer-runtime', 'glimmer-re
|
|
13309
13883
|
}
|
13310
13884
|
|
13311
13885
|
SingletonRenderManager.prototype.create = function create(environment, definition, args, dynamicScope) {
|
13886
|
+
var _this = this;
|
13887
|
+
|
13312
13888
|
var name = definition.name;
|
13313
13889
|
var env = definition.env;
|
13314
13890
|
|
13315
13891
|
var controller = env.owner.lookup('controller:' + name) || _emberRouting.generateController(env.owner, name);
|
13316
13892
|
|
13893
|
+
_emberMetal.runInDebug(function () {
|
13894
|
+
return _this._pushToDebugStack('controller:' + name + ' (with the render helper)', environment);
|
13895
|
+
});
|
13896
|
+
|
13317
13897
|
if (dynamicScope.rootOutletState) {
|
13318
13898
|
dynamicScope.outletState = dynamicScope.rootOutletState.getOrphan(name);
|
13319
13899
|
}
|
@@ -13336,6 +13916,8 @@ enifed('ember-glimmer/syntax/render', ['exports', 'glimmer-runtime', 'glimmer-re
|
|
13336
13916
|
}
|
13337
13917
|
|
13338
13918
|
NonSingletonRenderManager.prototype.create = function create(environment, definition, args, dynamicScope) {
|
13919
|
+
var _this2 = this;
|
13920
|
+
|
13339
13921
|
var name = definition.name;
|
13340
13922
|
var env = definition.env;
|
13341
13923
|
|
@@ -13344,6 +13926,10 @@ enifed('ember-glimmer/syntax/render', ['exports', 'glimmer-runtime', 'glimmer-re
|
|
13344
13926
|
var factory = env.owner._lookupFactory('controller:' + name) || _emberRouting.generateControllerFactory(env.owner, name);
|
13345
13927
|
var controller = factory.create({ model: modelRef.value() });
|
13346
13928
|
|
13929
|
+
_emberMetal.runInDebug(function () {
|
13930
|
+
return _this2._pushToDebugStack('controller:' + name + ' (with the render helper)', environment);
|
13931
|
+
});
|
13932
|
+
|
13347
13933
|
if (dynamicScope.rootOutletState) {
|
13348
13934
|
dynamicScope.outletState = dynamicScope.rootOutletState.getOrphan(name);
|
13349
13935
|
}
|
@@ -13683,6 +14269,99 @@ enifed('ember-glimmer/utils/bindings', ['exports', 'glimmer-reference', 'glimmer
|
|
13683
14269
|
return ColonClassNameBindingReference;
|
13684
14270
|
})(_glimmerReference.CachedReference);
|
13685
14271
|
});
|
14272
|
+
enifed('ember-glimmer/utils/debug-stack', ['exports', 'ember-metal'], function (exports, _emberMetal) {
|
14273
|
+
'use strict';
|
14274
|
+
|
14275
|
+
var DebugStack = undefined;
|
14276
|
+
|
14277
|
+
_emberMetal.runInDebug(function () {
|
14278
|
+
var Element = function Element(name) {
|
14279
|
+
babelHelpers.classCallCheck(this, Element);
|
14280
|
+
|
14281
|
+
this.name = name;
|
14282
|
+
};
|
14283
|
+
|
14284
|
+
var TemplateElement = (function (_Element) {
|
14285
|
+
babelHelpers.inherits(TemplateElement, _Element);
|
14286
|
+
|
14287
|
+
function TemplateElement() {
|
14288
|
+
babelHelpers.classCallCheck(this, TemplateElement);
|
14289
|
+
|
14290
|
+
_Element.apply(this, arguments);
|
14291
|
+
}
|
14292
|
+
|
14293
|
+
return TemplateElement;
|
14294
|
+
})(Element);
|
14295
|
+
|
14296
|
+
var EngineElement = (function (_Element2) {
|
14297
|
+
babelHelpers.inherits(EngineElement, _Element2);
|
14298
|
+
|
14299
|
+
function EngineElement() {
|
14300
|
+
babelHelpers.classCallCheck(this, EngineElement);
|
14301
|
+
|
14302
|
+
_Element2.apply(this, arguments);
|
14303
|
+
}
|
14304
|
+
|
14305
|
+
return EngineElement;
|
14306
|
+
})(Element);
|
14307
|
+
|
14308
|
+
DebugStack = (function () {
|
14309
|
+
function DebugStack() {
|
14310
|
+
babelHelpers.classCallCheck(this, DebugStack);
|
14311
|
+
|
14312
|
+
this._stack = [];
|
14313
|
+
}
|
14314
|
+
|
14315
|
+
DebugStack.prototype.push = function push(name) {
|
14316
|
+
this._stack.push(new TemplateElement(name));
|
14317
|
+
};
|
14318
|
+
|
14319
|
+
DebugStack.prototype.pushEngine = function pushEngine(name) {
|
14320
|
+
this._stack.push(new EngineElement(name));
|
14321
|
+
};
|
14322
|
+
|
14323
|
+
DebugStack.prototype.pop = function pop() {
|
14324
|
+
var element = this._stack.pop();
|
14325
|
+
|
14326
|
+
if (element) {
|
14327
|
+
return element.name;
|
14328
|
+
}
|
14329
|
+
};
|
14330
|
+
|
14331
|
+
DebugStack.prototype.peek = function peek() {
|
14332
|
+
var template = this._currentTemplate();
|
14333
|
+
var engine = this._currentEngine();
|
14334
|
+
|
14335
|
+
if (engine) {
|
14336
|
+
return '"' + template + '" (in "' + engine + '")';
|
14337
|
+
} else if (template) {
|
14338
|
+
return '"' + template + '"';
|
14339
|
+
}
|
14340
|
+
};
|
14341
|
+
|
14342
|
+
DebugStack.prototype._currentTemplate = function _currentTemplate() {
|
14343
|
+
return this._getCurrentByType(TemplateElement);
|
14344
|
+
};
|
14345
|
+
|
14346
|
+
DebugStack.prototype._currentEngine = function _currentEngine() {
|
14347
|
+
return this._getCurrentByType(EngineElement);
|
14348
|
+
};
|
14349
|
+
|
14350
|
+
DebugStack.prototype._getCurrentByType = function _getCurrentByType(type) {
|
14351
|
+
for (var i = this._stack.length; i >= 0; i--) {
|
14352
|
+
var element = this._stack[i];
|
14353
|
+
if (element instanceof type) {
|
14354
|
+
return element.name;
|
14355
|
+
}
|
14356
|
+
}
|
14357
|
+
};
|
14358
|
+
|
14359
|
+
return DebugStack;
|
14360
|
+
})();
|
14361
|
+
});
|
14362
|
+
|
14363
|
+
exports.default = DebugStack;
|
14364
|
+
});
|
13686
14365
|
enifed('ember-glimmer/utils/iterable', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime', 'ember-glimmer/utils/references', 'ember-glimmer/helpers/each-in', 'glimmer-reference'], function (exports, _emberUtils, _emberMetal, _emberRuntime, _emberGlimmerUtilsReferences, _emberGlimmerHelpersEachIn, _glimmerReference) {
|
13687
14366
|
'use strict';
|
13688
14367
|
|
@@ -14516,8 +15195,10 @@ enifed('ember-glimmer/utils/references', ['exports', 'ember-utils', 'ember-metal
|
|
14516
15195
|
var namedValue = named.value();
|
14517
15196
|
|
14518
15197
|
_emberMetal.runInDebug(function () {
|
14519
|
-
|
14520
|
-
|
15198
|
+
if (_emberUtils.HAS_NATIVE_WEAKMAP) {
|
15199
|
+
Object.freeze(positionalValue);
|
15200
|
+
Object.freeze(namedValue);
|
15201
|
+
}
|
14521
15202
|
});
|
14522
15203
|
|
14523
15204
|
var result = helper(positionalValue, namedValue);
|
@@ -14567,8 +15248,10 @@ enifed('ember-glimmer/utils/references', ['exports', 'ember-utils', 'ember-metal
|
|
14567
15248
|
var namedValue = named.value();
|
14568
15249
|
|
14569
15250
|
_emberMetal.runInDebug(function () {
|
14570
|
-
|
14571
|
-
|
15251
|
+
if (_emberUtils.HAS_NATIVE_WEAKMAP) {
|
15252
|
+
Object.freeze(positionalValue);
|
15253
|
+
Object.freeze(namedValue);
|
15254
|
+
}
|
14572
15255
|
});
|
14573
15256
|
|
14574
15257
|
return helper(positionalValue, namedValue);
|
@@ -14608,8 +15291,10 @@ enifed('ember-glimmer/utils/references', ['exports', 'ember-utils', 'ember-metal
|
|
14608
15291
|
var namedValue = named.value();
|
14609
15292
|
|
14610
15293
|
_emberMetal.runInDebug(function () {
|
14611
|
-
|
14612
|
-
|
15294
|
+
if (_emberUtils.HAS_NATIVE_WEAKMAP) {
|
15295
|
+
Object.freeze(positionalValue);
|
15296
|
+
Object.freeze(namedValue);
|
15297
|
+
}
|
14613
15298
|
});
|
14614
15299
|
|
14615
15300
|
return instance.compute(positionalValue, namedValue);
|
@@ -15656,7 +16341,7 @@ enifed('ember-metal/cache', ['exports', 'ember-utils', 'ember-metal/meta'], func
|
|
15656
16341
|
return DefaultStore;
|
15657
16342
|
})();
|
15658
16343
|
});
|
15659
|
-
enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/watch_path'], function (exports, _emberUtils, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalWatch_path) {
|
16344
|
+
enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/computed', 'ember-metal/watch_path'], function (exports, _emberUtils, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalComputed, _emberMetalWatch_path) {
|
15660
16345
|
'use strict';
|
15661
16346
|
|
15662
16347
|
exports.finishChains = finishChains;
|
@@ -15841,8 +16526,8 @@ enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_ge
|
|
15841
16526
|
// Otherwise attempt to get the cached value of the computed property
|
15842
16527
|
} else {
|
15843
16528
|
var cache = meta.readableCache();
|
15844
|
-
if (cache
|
15845
|
-
return cache
|
16529
|
+
if (cache) {
|
16530
|
+
return _emberMetalComputed.cacheFor.get(cache, key);
|
15846
16531
|
}
|
15847
16532
|
}
|
15848
16533
|
}
|
@@ -18719,7 +19404,7 @@ enifed('ember-metal/merge', ['exports'], function (exports) {
|
|
18719
19404
|
return original;
|
18720
19405
|
}
|
18721
19406
|
});
|
18722
|
-
enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'ember-metal/meta_listeners', 'ember-metal/debug', 'ember-metal/chains'], function (exports, _emberUtils, _emberMetalFeatures, _emberMetalMeta_listeners, _emberMetalDebug, _emberMetalChains) {
|
19407
|
+
enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'ember-metal/meta_listeners', 'ember-metal/debug', 'ember-metal/chains', 'require'], function (exports, _emberUtils, _emberMetalFeatures, _emberMetalMeta_listeners, _emberMetalDebug, _emberMetalChains, _require) {
|
18723
19408
|
'no use strict';
|
18724
19409
|
// Remove "use strict"; from transpiled module until
|
18725
19410
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
@@ -18784,13 +19469,19 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
|
|
18784
19469
|
|
18785
19470
|
if (true || false) {
|
18786
19471
|
members.lastRendered = ownMap;
|
18787
|
-
|
19472
|
+
if (_require.has('ember-debug')) {
|
19473
|
+
//https://github.com/emberjs/ember.js/issues/14732
|
19474
|
+
members.lastRenderedReferenceMap = ownMap;
|
19475
|
+
members.lastRenderedTemplateMap = ownMap;
|
19476
|
+
}
|
18788
19477
|
}
|
18789
19478
|
|
18790
19479
|
var memberNames = Object.keys(members);
|
18791
19480
|
var META_FIELD = '__ember_meta__';
|
18792
19481
|
|
18793
19482
|
function Meta(obj, parentMeta) {
|
19483
|
+
var _this = this;
|
19484
|
+
|
18794
19485
|
_emberMetalDebug.runInDebug(function () {
|
18795
19486
|
return counters.metaInstantiated++;
|
18796
19487
|
});
|
@@ -18826,7 +19517,10 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
|
|
18826
19517
|
|
18827
19518
|
if (true || false) {
|
18828
19519
|
this._lastRendered = undefined;
|
18829
|
-
|
19520
|
+
_emberMetalDebug.runInDebug(function () {
|
19521
|
+
_this._lastRenderedReferenceMap = undefined;
|
19522
|
+
_this._lastRenderedTemplateMap = undefined;
|
19523
|
+
});
|
18830
19524
|
}
|
18831
19525
|
|
18832
19526
|
this._initializeListeners();
|
@@ -19193,24 +19887,11 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
|
|
19193
19887
|
};
|
19194
19888
|
}
|
19195
19889
|
|
19196
|
-
var HAS_NATIVE_WEAKMAP = (function () {
|
19197
|
-
// detect if `WeakMap` is even present
|
19198
|
-
var hasWeakMap = typeof WeakMap === 'function';
|
19199
|
-
if (!hasWeakMap) {
|
19200
|
-
return false;
|
19201
|
-
}
|
19202
|
-
|
19203
|
-
var instance = new WeakMap();
|
19204
|
-
// use `Object`'s `.toString` directly to prevent us from detecting
|
19205
|
-
// polyfills as native weakmaps
|
19206
|
-
return Object.prototype.toString.call(instance) === '[object WeakMap]';
|
19207
|
-
})();
|
19208
|
-
|
19209
19890
|
var setMeta = undefined,
|
19210
19891
|
peekMeta = undefined;
|
19211
19892
|
|
19212
19893
|
// choose the one appropriate for given platform
|
19213
|
-
if (HAS_NATIVE_WEAKMAP) {
|
19894
|
+
if (_emberUtils.HAS_NATIVE_WEAKMAP) {
|
19214
19895
|
(function () {
|
19215
19896
|
var getPrototypeOf = Object.getPrototypeOf;
|
19216
19897
|
var metaStore = new WeakMap();
|
@@ -22343,10 +23024,14 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
|
|
22343
23024
|
var counter = 0;
|
22344
23025
|
var inTransaction = false;
|
22345
23026
|
var shouldReflush = undefined;
|
23027
|
+
var debugStack = undefined;
|
22346
23028
|
|
22347
23029
|
exports.default = runInTransaction = function (context, methodName) {
|
22348
23030
|
shouldReflush = false;
|
22349
23031
|
inTransaction = true;
|
23032
|
+
_emberMetalDebug.runInDebug(function () {
|
23033
|
+
debugStack = context.env.debugStack;
|
23034
|
+
});
|
22350
23035
|
context[methodName]();
|
22351
23036
|
inTransaction = false;
|
22352
23037
|
counter++;
|
@@ -22362,8 +23047,13 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
|
|
22362
23047
|
lastRendered[key] = counter;
|
22363
23048
|
|
22364
23049
|
_emberMetalDebug.runInDebug(function () {
|
22365
|
-
var
|
22366
|
-
|
23050
|
+
var referenceMap = meta.writableLastRenderedReferenceMap();
|
23051
|
+
referenceMap[key] = reference;
|
23052
|
+
|
23053
|
+
var templateMap = meta.writableLastRenderedTemplateMap();
|
23054
|
+
if (templateMap[key] === undefined) {
|
23055
|
+
templateMap[key] = debugStack.peek();
|
23056
|
+
}
|
22367
23057
|
});
|
22368
23058
|
};
|
22369
23059
|
|
@@ -22373,10 +23063,13 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
|
|
22373
23063
|
|
22374
23064
|
if (lastRendered && lastRendered[key] === counter) {
|
22375
23065
|
raise((function () {
|
22376
|
-
var
|
22377
|
-
var
|
22378
|
-
var
|
23066
|
+
var templateMap = meta.readableLastRenderedTemplateMap();
|
23067
|
+
var lastRenderedIn = templateMap[key];
|
23068
|
+
var currentlyIn = debugStack.peek();
|
22379
23069
|
|
23070
|
+
var referenceMap = meta.readableLastRenderedReferenceMap();
|
23071
|
+
var lastRef = referenceMap[key];
|
23072
|
+
var parts = [];
|
22380
23073
|
var label = undefined;
|
22381
23074
|
|
22382
23075
|
if (lastRef) {
|
@@ -22385,12 +23078,12 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
|
|
22385
23078
|
lastRef = lastRef._parentReference;
|
22386
23079
|
}
|
22387
23080
|
|
22388
|
-
label = parts.join();
|
23081
|
+
label = parts.join('.');
|
22389
23082
|
} else {
|
22390
23083
|
label = 'the same value';
|
22391
23084
|
}
|
22392
23085
|
|
22393
|
-
return 'You modified ' + label + ' twice on ' + object + ' in a single render. This was unreliable and slow in Ember 1.x and ' + implication;
|
23086
|
+
return 'You modified "' + label + '" twice on ' + object + ' in a single render. It was rendered in ' + lastRenderedIn + ' and modified in ' + currentlyIn + '. This was unreliable and slow in Ember 1.x and ' + implication;
|
22394
23087
|
})(), false);
|
22395
23088
|
|
22396
23089
|
shouldReflush = true;
|
@@ -33458,9 +34151,9 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal', 'ember-r
|
|
33458
34151
|
want to reuse an existing array without having to recreate it.
|
33459
34152
|
```javascript
|
33460
34153
|
let colors = ['red', 'green', 'blue'];
|
33461
|
-
|
33462
|
-
colors.clear();
|
33463
|
-
colors.length
|
34154
|
+
colors.length; // 3
|
34155
|
+
colors.clear(); // []
|
34156
|
+
colors.length; // 0
|
33464
34157
|
```
|
33465
34158
|
@method clear
|
33466
34159
|
@return {Ember.Array} An empty Array.
|
@@ -34637,7 +35330,7 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal'], functi
|
|
34637
35330
|
let App = Ember.Application.create();
|
34638
35331
|
let appInstance = App.buildInstance();
|
34639
35332
|
// if all of type `connection` must not be singletons
|
34640
|
-
appInstance.
|
35333
|
+
appInstance.registerOptionsForType('connection', { singleton: false });
|
34641
35334
|
appInstance.register('connection:twitter', TwitterConnection);
|
34642
35335
|
appInstance.register('connection:facebook', FacebookConnection);
|
34643
35336
|
let twitter = appInstance.lookup('connection:twitter');
|
@@ -39319,7 +40012,7 @@ enifed('ember-utils/guid', ['exports', 'ember-utils/intern'], function (exports,
|
|
39319
40012
|
}
|
39320
40013
|
}
|
39321
40014
|
});
|
39322
|
-
enifed('ember-utils/index', ['exports', 'ember-utils/symbol', 'ember-utils/owner', 'ember-utils/assign', 'ember-utils/empty-object', 'ember-utils/dictionary', 'ember-utils/guid', 'ember-utils/intern', 'ember-utils/super', 'ember-utils/inspect', 'ember-utils/lookup-descriptor', 'ember-utils/invoke', 'ember-utils/make-array', 'ember-utils/apply-str', 'ember-utils/name', 'ember-utils/to-string'], function (exports, _emberUtilsSymbol, _emberUtilsOwner, _emberUtilsAssign, _emberUtilsEmptyObject, _emberUtilsDictionary, _emberUtilsGuid, _emberUtilsIntern, _emberUtilsSuper, _emberUtilsInspect, _emberUtilsLookupDescriptor, _emberUtilsInvoke, _emberUtilsMakeArray, _emberUtilsApplyStr, _emberUtilsName, _emberUtilsToString) {
|
40015
|
+
enifed('ember-utils/index', ['exports', 'ember-utils/symbol', 'ember-utils/owner', 'ember-utils/assign', 'ember-utils/empty-object', 'ember-utils/dictionary', 'ember-utils/guid', 'ember-utils/intern', 'ember-utils/super', 'ember-utils/inspect', 'ember-utils/lookup-descriptor', 'ember-utils/invoke', 'ember-utils/make-array', 'ember-utils/apply-str', 'ember-utils/name', 'ember-utils/to-string', 'ember-utils/weak-map-utils'], function (exports, _emberUtilsSymbol, _emberUtilsOwner, _emberUtilsAssign, _emberUtilsEmptyObject, _emberUtilsDictionary, _emberUtilsGuid, _emberUtilsIntern, _emberUtilsSuper, _emberUtilsInspect, _emberUtilsLookupDescriptor, _emberUtilsInvoke, _emberUtilsMakeArray, _emberUtilsApplyStr, _emberUtilsName, _emberUtilsToString, _emberUtilsWeakMapUtils) {
|
39323
40016
|
/*
|
39324
40017
|
This package will be eagerly parsed and should have no dependencies on external
|
39325
40018
|
packages.
|
@@ -39357,6 +40050,7 @@ enifed('ember-utils/index', ['exports', 'ember-utils/symbol', 'ember-utils/owner
|
|
39357
40050
|
exports.applyStr = _emberUtilsApplyStr.default;
|
39358
40051
|
exports.NAME_KEY = _emberUtilsName.default;
|
39359
40052
|
exports.toString = _emberUtilsToString.default;
|
40053
|
+
exports.HAS_NATIVE_WEAKMAP = _emberUtilsWeakMapUtils.HAS_NATIVE_WEAKMAP;
|
39360
40054
|
});
|
39361
40055
|
enifed('ember-utils/inspect', ['exports'], function (exports) {
|
39362
40056
|
'use strict';
|
@@ -39657,8 +40351,8 @@ enifed('ember-utils/owner', ['exports', 'ember-utils/symbol'], function (exports
|
|
39657
40351
|
|
39658
40352
|
@method setOwner
|
39659
40353
|
@for Ember
|
39660
|
-
@param {Object} object An object
|
39661
|
-
@
|
40354
|
+
@param {Object} object An object instance.
|
40355
|
+
@param {Object} object The new owner object of the object instance.
|
39662
40356
|
@since 2.3.0
|
39663
40357
|
@public
|
39664
40358
|
*/
|
@@ -39774,6 +40468,23 @@ enifed('ember-utils/to-string', ['exports'], function (exports) {
|
|
39774
40468
|
}
|
39775
40469
|
}
|
39776
40470
|
});
|
40471
|
+
enifed('ember-utils/weak-map-utils', ['exports'], function (exports) {
|
40472
|
+
'use strict';
|
40473
|
+
|
40474
|
+
var HAS_NATIVE_WEAKMAP = (function () {
|
40475
|
+
// detect if `WeakMap` is even present
|
40476
|
+
var hasWeakMap = typeof WeakMap === 'function';
|
40477
|
+
if (!hasWeakMap) {
|
40478
|
+
return false;
|
40479
|
+
}
|
40480
|
+
|
40481
|
+
var instance = new WeakMap();
|
40482
|
+
// use `Object`'s `.toString` directly to prevent us from detecting
|
40483
|
+
// polyfills as native weakmaps
|
40484
|
+
return Object.prototype.toString.call(instance) === '[object WeakMap]';
|
40485
|
+
})();
|
40486
|
+
exports.HAS_NATIVE_WEAKMAP = HAS_NATIVE_WEAKMAP;
|
40487
|
+
});
|
39777
40488
|
enifed('ember-views/compat/attrs', ['exports', 'ember-utils'], function (exports, _emberUtils) {
|
39778
40489
|
'use strict';
|
39779
40490
|
|
@@ -41736,481 +42447,6 @@ enifed("ember-views/views/view", ["exports"], function (exports) {
|
|
41736
42447
|
*/
|
41737
42448
|
|
41738
42449
|
/**
|
41739
|
-
`Ember.View` is the class in Ember responsible for encapsulating templates of
|
41740
|
-
HTML content, combining templates with data to render as sections of a page's
|
41741
|
-
DOM, and registering and responding to user-initiated events.
|
41742
|
-
|
41743
|
-
## HTML Tag
|
41744
|
-
|
41745
|
-
The default HTML tag name used for a view's DOM representation is `div`. This
|
41746
|
-
can be customized by setting the `tagName` property. The following view
|
41747
|
-
class:
|
41748
|
-
|
41749
|
-
```javascript
|
41750
|
-
ParagraphView = Ember.View.extend({
|
41751
|
-
tagName: 'em'
|
41752
|
-
});
|
41753
|
-
```
|
41754
|
-
|
41755
|
-
Would result in instances with the following HTML:
|
41756
|
-
|
41757
|
-
```html
|
41758
|
-
<em id="ember1" class="ember-view"></em>
|
41759
|
-
```
|
41760
|
-
|
41761
|
-
## HTML `class` Attribute
|
41762
|
-
|
41763
|
-
The HTML `class` attribute of a view's tag can be set by providing a
|
41764
|
-
`classNames` property that is set to an array of strings:
|
41765
|
-
|
41766
|
-
```javascript
|
41767
|
-
MyView = Ember.View.extend({
|
41768
|
-
classNames: ['my-class', 'my-other-class']
|
41769
|
-
});
|
41770
|
-
```
|
41771
|
-
|
41772
|
-
Will result in view instances with an HTML representation of:
|
41773
|
-
|
41774
|
-
```html
|
41775
|
-
<div id="ember1" class="ember-view my-class my-other-class"></div>
|
41776
|
-
```
|
41777
|
-
|
41778
|
-
`class` attribute values can also be set by providing a `classNameBindings`
|
41779
|
-
property set to an array of properties names for the view. The return value
|
41780
|
-
of these properties will be added as part of the value for the view's `class`
|
41781
|
-
attribute. These properties can be computed properties:
|
41782
|
-
|
41783
|
-
```javascript
|
41784
|
-
MyView = Ember.View.extend({
|
41785
|
-
classNameBindings: ['propertyA', 'propertyB'],
|
41786
|
-
propertyA: 'from-a',
|
41787
|
-
propertyB: Ember.computed(function() {
|
41788
|
-
if (someLogic) { return 'from-b'; }
|
41789
|
-
})
|
41790
|
-
});
|
41791
|
-
```
|
41792
|
-
|
41793
|
-
Will result in view instances with an HTML representation of:
|
41794
|
-
|
41795
|
-
```html
|
41796
|
-
<div id="ember1" class="ember-view from-a from-b"></div>
|
41797
|
-
```
|
41798
|
-
|
41799
|
-
If the value of a class name binding returns a boolean the property name
|
41800
|
-
itself will be used as the class name if the property is true. The class name
|
41801
|
-
will not be added if the value is `false` or `undefined`.
|
41802
|
-
|
41803
|
-
```javascript
|
41804
|
-
MyView = Ember.View.extend({
|
41805
|
-
classNameBindings: ['hovered'],
|
41806
|
-
hovered: true
|
41807
|
-
});
|
41808
|
-
```
|
41809
|
-
|
41810
|
-
Will result in view instances with an HTML representation of:
|
41811
|
-
|
41812
|
-
```html
|
41813
|
-
<div id="ember1" class="ember-view hovered"></div>
|
41814
|
-
```
|
41815
|
-
|
41816
|
-
When using boolean class name bindings you can supply a string value other
|
41817
|
-
than the property name for use as the `class` HTML attribute by appending the
|
41818
|
-
preferred value after a ":" character when defining the binding:
|
41819
|
-
|
41820
|
-
```javascript
|
41821
|
-
MyView = Ember.View.extend({
|
41822
|
-
classNameBindings: ['awesome:so-very-cool'],
|
41823
|
-
awesome: true
|
41824
|
-
});
|
41825
|
-
```
|
41826
|
-
|
41827
|
-
Will result in view instances with an HTML representation of:
|
41828
|
-
|
41829
|
-
```html
|
41830
|
-
<div id="ember1" class="ember-view so-very-cool"></div>
|
41831
|
-
```
|
41832
|
-
|
41833
|
-
Boolean value class name bindings whose property names are in a
|
41834
|
-
camelCase-style format will be converted to a dasherized format:
|
41835
|
-
|
41836
|
-
```javascript
|
41837
|
-
MyView = Ember.View.extend({
|
41838
|
-
classNameBindings: ['isUrgent'],
|
41839
|
-
isUrgent: true
|
41840
|
-
});
|
41841
|
-
```
|
41842
|
-
|
41843
|
-
Will result in view instances with an HTML representation of:
|
41844
|
-
|
41845
|
-
```html
|
41846
|
-
<div id="ember1" class="ember-view is-urgent"></div>
|
41847
|
-
```
|
41848
|
-
|
41849
|
-
Class name bindings can also refer to object values that are found by
|
41850
|
-
traversing a path relative to the view itself:
|
41851
|
-
|
41852
|
-
```javascript
|
41853
|
-
MyView = Ember.View.extend({
|
41854
|
-
classNameBindings: ['messages.empty']
|
41855
|
-
messages: Ember.Object.create({
|
41856
|
-
empty: true
|
41857
|
-
})
|
41858
|
-
});
|
41859
|
-
```
|
41860
|
-
|
41861
|
-
Will result in view instances with an HTML representation of:
|
41862
|
-
|
41863
|
-
```html
|
41864
|
-
<div id="ember1" class="ember-view empty"></div>
|
41865
|
-
```
|
41866
|
-
|
41867
|
-
If you want to add a class name for a property which evaluates to true and
|
41868
|
-
and a different class name if it evaluates to false, you can pass a binding
|
41869
|
-
like this:
|
41870
|
-
|
41871
|
-
```javascript
|
41872
|
-
// Applies 'enabled' class when isEnabled is true and 'disabled' when isEnabled is false
|
41873
|
-
Ember.View.extend({
|
41874
|
-
classNameBindings: ['isEnabled:enabled:disabled']
|
41875
|
-
isEnabled: true
|
41876
|
-
});
|
41877
|
-
```
|
41878
|
-
|
41879
|
-
Will result in view instances with an HTML representation of:
|
41880
|
-
|
41881
|
-
```html
|
41882
|
-
<div id="ember1" class="ember-view enabled"></div>
|
41883
|
-
```
|
41884
|
-
|
41885
|
-
When isEnabled is `false`, the resulting HTML representation looks like
|
41886
|
-
this:
|
41887
|
-
|
41888
|
-
```html
|
41889
|
-
<div id="ember1" class="ember-view disabled"></div>
|
41890
|
-
```
|
41891
|
-
|
41892
|
-
This syntax offers the convenience to add a class if a property is `false`:
|
41893
|
-
|
41894
|
-
```javascript
|
41895
|
-
// Applies no class when isEnabled is true and class 'disabled' when isEnabled is false
|
41896
|
-
Ember.View.extend({
|
41897
|
-
classNameBindings: ['isEnabled::disabled']
|
41898
|
-
isEnabled: true
|
41899
|
-
});
|
41900
|
-
```
|
41901
|
-
|
41902
|
-
Will result in view instances with an HTML representation of:
|
41903
|
-
|
41904
|
-
```html
|
41905
|
-
<div id="ember1" class="ember-view"></div>
|
41906
|
-
```
|
41907
|
-
|
41908
|
-
When the `isEnabled` property on the view is set to `false`, it will result
|
41909
|
-
in view instances with an HTML representation of:
|
41910
|
-
|
41911
|
-
```html
|
41912
|
-
<div id="ember1" class="ember-view disabled"></div>
|
41913
|
-
```
|
41914
|
-
|
41915
|
-
Updates to the value of a class name binding will result in automatic
|
41916
|
-
update of the HTML `class` attribute in the view's rendered HTML
|
41917
|
-
representation. If the value becomes `false` or `undefined` the class name
|
41918
|
-
will be removed.
|
41919
|
-
|
41920
|
-
Both `classNames` and `classNameBindings` are concatenated properties. See
|
41921
|
-
[Ember.Object](/api/classes/Ember.Object.html) documentation for more
|
41922
|
-
information about concatenated properties.
|
41923
|
-
|
41924
|
-
## HTML Attributes
|
41925
|
-
|
41926
|
-
The HTML attribute section of a view's tag can be set by providing an
|
41927
|
-
`attributeBindings` property set to an array of property names on the view.
|
41928
|
-
The return value of these properties will be used as the value of the view's
|
41929
|
-
HTML associated attribute:
|
41930
|
-
|
41931
|
-
```javascript
|
41932
|
-
AnchorView = Ember.View.extend({
|
41933
|
-
tagName: 'a',
|
41934
|
-
attributeBindings: ['href'],
|
41935
|
-
href: 'http://google.com'
|
41936
|
-
});
|
41937
|
-
```
|
41938
|
-
|
41939
|
-
Will result in view instances with an HTML representation of:
|
41940
|
-
|
41941
|
-
```html
|
41942
|
-
<a id="ember1" class="ember-view" href="http://google.com"></a>
|
41943
|
-
```
|
41944
|
-
|
41945
|
-
One property can be mapped on to another by placing a ":" between
|
41946
|
-
the source property and the destination property:
|
41947
|
-
|
41948
|
-
```javascript
|
41949
|
-
AnchorView = Ember.View.extend({
|
41950
|
-
tagName: 'a',
|
41951
|
-
attributeBindings: ['url:href'],
|
41952
|
-
url: 'http://google.com'
|
41953
|
-
});
|
41954
|
-
```
|
41955
|
-
|
41956
|
-
Will result in view instances with an HTML representation of:
|
41957
|
-
|
41958
|
-
```html
|
41959
|
-
<a id="ember1" class="ember-view" href="http://google.com"></a>
|
41960
|
-
```
|
41961
|
-
|
41962
|
-
Namespaced attributes (e.g. `xlink:href`) are supported, but have to be
|
41963
|
-
mapped, since `:` is not a valid character for properties in Javascript:
|
41964
|
-
|
41965
|
-
```javascript
|
41966
|
-
UseView = Ember.View.extend({
|
41967
|
-
tagName: 'use',
|
41968
|
-
attributeBindings: ['xlinkHref:xlink:href'],
|
41969
|
-
xlinkHref: '#triangle'
|
41970
|
-
});
|
41971
|
-
```
|
41972
|
-
Will result in view instances with an HTML representation of:
|
41973
|
-
|
41974
|
-
```html
|
41975
|
-
<use xlink:href="#triangle"></use>
|
41976
|
-
```
|
41977
|
-
|
41978
|
-
If the return value of an `attributeBindings` monitored property is a boolean
|
41979
|
-
the attribute will be present or absent depending on the value:
|
41980
|
-
|
41981
|
-
```javascript
|
41982
|
-
MyTextInput = Ember.View.extend({
|
41983
|
-
tagName: 'input',
|
41984
|
-
attributeBindings: ['disabled'],
|
41985
|
-
disabled: false
|
41986
|
-
});
|
41987
|
-
```
|
41988
|
-
|
41989
|
-
Will result in a view instance with an HTML representation of:
|
41990
|
-
|
41991
|
-
```html
|
41992
|
-
<input id="ember1" class="ember-view" />
|
41993
|
-
```
|
41994
|
-
|
41995
|
-
`attributeBindings` can refer to computed properties:
|
41996
|
-
|
41997
|
-
```javascript
|
41998
|
-
MyTextInput = Ember.View.extend({
|
41999
|
-
tagName: 'input',
|
42000
|
-
attributeBindings: ['disabled'],
|
42001
|
-
disabled: Ember.computed(function() {
|
42002
|
-
if (someLogic) {
|
42003
|
-
return true;
|
42004
|
-
} else {
|
42005
|
-
return false;
|
42006
|
-
}
|
42007
|
-
})
|
42008
|
-
});
|
42009
|
-
```
|
42010
|
-
|
42011
|
-
To prevent setting an attribute altogether, use `null` or `undefined` as the
|
42012
|
-
return value of the `attributeBindings` monitored property:
|
42013
|
-
|
42014
|
-
```javascript
|
42015
|
-
MyTextInput = Ember.View.extend({
|
42016
|
-
tagName: 'form',
|
42017
|
-
attributeBindings: ['novalidate'],
|
42018
|
-
novalidate: null
|
42019
|
-
});
|
42020
|
-
```
|
42021
|
-
|
42022
|
-
Updates to the property of an attribute binding will result in automatic
|
42023
|
-
update of the HTML attribute in the view's rendered HTML representation.
|
42024
|
-
|
42025
|
-
`attributeBindings` is a concatenated property. See [Ember.Object](/api/classes/Ember.Object.html)
|
42026
|
-
documentation for more information about concatenated properties.
|
42027
|
-
|
42028
|
-
## Layouts
|
42029
|
-
|
42030
|
-
Views can have a secondary template that wraps their main template. Like
|
42031
|
-
primary templates, layouts can be any function that accepts an optional
|
42032
|
-
context parameter and returns a string of HTML that will be inserted inside
|
42033
|
-
view's tag. Views whose HTML element is self closing (e.g. `<input />`)
|
42034
|
-
cannot have a layout and this property will be ignored.
|
42035
|
-
|
42036
|
-
Most typically in Ember a layout will be a compiled template.
|
42037
|
-
|
42038
|
-
A view's layout can be set directly with the `layout` property or reference
|
42039
|
-
an existing template by name with the `layoutName` property.
|
42040
|
-
|
42041
|
-
A template used as a layout must contain a single use of the
|
42042
|
-
`{{yield}}` helper. The HTML contents of a view's rendered `template` will be
|
42043
|
-
inserted at this location:
|
42044
|
-
|
42045
|
-
```javascript
|
42046
|
-
AViewWithLayout = Ember.View.extend({
|
42047
|
-
layout: Ember.HTMLBars.compile("<div class='my-decorative-class'>{{yield}}</div>"),
|
42048
|
-
template: Ember.HTMLBars.compile("I got wrapped")
|
42049
|
-
});
|
42050
|
-
```
|
42051
|
-
|
42052
|
-
Will result in view instances with an HTML representation of:
|
42053
|
-
|
42054
|
-
```html
|
42055
|
-
<div id="ember1" class="ember-view">
|
42056
|
-
<div class="my-decorative-class">
|
42057
|
-
I got wrapped
|
42058
|
-
</div>
|
42059
|
-
</div>
|
42060
|
-
```
|
42061
|
-
|
42062
|
-
See [Ember.Templates.helpers.yield](/api/classes/Ember.Templates.helpers.html#method_yield)
|
42063
|
-
for more information.
|
42064
|
-
|
42065
|
-
## Responding to Browser Events
|
42066
|
-
|
42067
|
-
Views can respond to user-initiated events in one of three ways: method
|
42068
|
-
implementation, through an event manager, and through `{{action}}` helper use
|
42069
|
-
in their template or layout.
|
42070
|
-
|
42071
|
-
### Method Implementation
|
42072
|
-
|
42073
|
-
Views can respond to user-initiated events by implementing a method that
|
42074
|
-
matches the event name. A `jQuery.Event` object will be passed as the
|
42075
|
-
argument to this method.
|
42076
|
-
|
42077
|
-
```javascript
|
42078
|
-
AView = Ember.View.extend({
|
42079
|
-
click: function(event) {
|
42080
|
-
// will be called when an instance's
|
42081
|
-
// rendered element is clicked
|
42082
|
-
}
|
42083
|
-
});
|
42084
|
-
```
|
42085
|
-
|
42086
|
-
### Event Managers
|
42087
|
-
|
42088
|
-
Views can define an object as their `eventManager` property. This object can
|
42089
|
-
then implement methods that match the desired event names. Matching events
|
42090
|
-
that occur on the view's rendered HTML or the rendered HTML of any of its DOM
|
42091
|
-
descendants will trigger this method. A `jQuery.Event` object will be passed
|
42092
|
-
as the first argument to the method and an `Ember.View` object as the
|
42093
|
-
second. The `Ember.View` will be the view whose rendered HTML was interacted
|
42094
|
-
with. This may be the view with the `eventManager` property or one of its
|
42095
|
-
descendant views.
|
42096
|
-
|
42097
|
-
```javascript
|
42098
|
-
AView = Ember.View.extend({
|
42099
|
-
eventManager: Ember.Object.create({
|
42100
|
-
doubleClick: function(event, view) {
|
42101
|
-
// will be called when an instance's
|
42102
|
-
// rendered element or any rendering
|
42103
|
-
// of this view's descendant
|
42104
|
-
// elements is clicked
|
42105
|
-
}
|
42106
|
-
})
|
42107
|
-
});
|
42108
|
-
```
|
42109
|
-
|
42110
|
-
An event defined for an event manager takes precedence over events of the
|
42111
|
-
same name handled through methods on the view.
|
42112
|
-
|
42113
|
-
```javascript
|
42114
|
-
AView = Ember.View.extend({
|
42115
|
-
mouseEnter: function(event) {
|
42116
|
-
// will never trigger.
|
42117
|
-
},
|
42118
|
-
eventManager: Ember.Object.create({
|
42119
|
-
mouseEnter: function(event, view) {
|
42120
|
-
// takes precedence over AView#mouseEnter
|
42121
|
-
}
|
42122
|
-
})
|
42123
|
-
});
|
42124
|
-
```
|
42125
|
-
|
42126
|
-
Similarly a view's event manager will take precedence for events of any views
|
42127
|
-
rendered as a descendant. A method name that matches an event name will not
|
42128
|
-
be called if the view instance was rendered inside the HTML representation of
|
42129
|
-
a view that has an `eventManager` property defined that handles events of the
|
42130
|
-
name. Events not handled by the event manager will still trigger method calls
|
42131
|
-
on the descendant.
|
42132
|
-
|
42133
|
-
```javascript
|
42134
|
-
var App = Ember.Application.create();
|
42135
|
-
App.OuterView = Ember.View.extend({
|
42136
|
-
template: Ember.HTMLBars.compile("outer {{#view 'inner'}}inner{{/view}} outer"),
|
42137
|
-
eventManager: Ember.Object.create({
|
42138
|
-
mouseEnter: function(event, view) {
|
42139
|
-
// view might be instance of either
|
42140
|
-
// OuterView or InnerView depending on
|
42141
|
-
// where on the page the user interaction occurred
|
42142
|
-
}
|
42143
|
-
})
|
42144
|
-
});
|
42145
|
-
|
42146
|
-
App.InnerView = Ember.View.extend({
|
42147
|
-
click: function(event) {
|
42148
|
-
// will be called if rendered inside
|
42149
|
-
// an OuterView because OuterView's
|
42150
|
-
// eventManager doesn't handle click events
|
42151
|
-
},
|
42152
|
-
mouseEnter: function(event) {
|
42153
|
-
// will never be called if rendered inside
|
42154
|
-
// an OuterView.
|
42155
|
-
}
|
42156
|
-
});
|
42157
|
-
```
|
42158
|
-
|
42159
|
-
### `{{action}}` Helper
|
42160
|
-
|
42161
|
-
See [Ember.Templates.helpers.action](/api/classes/Ember.Templates.helpers.html#method_action).
|
42162
|
-
|
42163
|
-
### Event Names
|
42164
|
-
|
42165
|
-
All of the event handling approaches described above respond to the same set
|
42166
|
-
of events. The names of the built-in events are listed below. (The hash of
|
42167
|
-
built-in events exists in `Ember.EventDispatcher`.) Additional, custom events
|
42168
|
-
can be registered by using `Ember.Application.customEvents`.
|
42169
|
-
|
42170
|
-
Touch events:
|
42171
|
-
|
42172
|
-
* `touchStart`
|
42173
|
-
* `touchMove`
|
42174
|
-
* `touchEnd`
|
42175
|
-
* `touchCancel`
|
42176
|
-
|
42177
|
-
Keyboard events
|
42178
|
-
|
42179
|
-
* `keyDown`
|
42180
|
-
* `keyUp`
|
42181
|
-
* `keyPress`
|
42182
|
-
|
42183
|
-
Mouse events
|
42184
|
-
|
42185
|
-
* `mouseDown`
|
42186
|
-
* `mouseUp`
|
42187
|
-
* `contextMenu`
|
42188
|
-
* `click`
|
42189
|
-
* `doubleClick`
|
42190
|
-
* `mouseMove`
|
42191
|
-
* `focusIn`
|
42192
|
-
* `focusOut`
|
42193
|
-
* `mouseEnter`
|
42194
|
-
* `mouseLeave`
|
42195
|
-
|
42196
|
-
Form events:
|
42197
|
-
|
42198
|
-
* `submit`
|
42199
|
-
* `change`
|
42200
|
-
* `focusIn`
|
42201
|
-
* `focusOut`
|
42202
|
-
* `input`
|
42203
|
-
|
42204
|
-
HTML5 drag and drop events:
|
42205
|
-
|
42206
|
-
* `dragStart`
|
42207
|
-
* `drag`
|
42208
|
-
* `dragEnter`
|
42209
|
-
* `dragLeave`
|
42210
|
-
* `dragOver`
|
42211
|
-
* `dragEnd`
|
42212
|
-
* `drop`
|
42213
|
-
|
42214
42450
|
@class View
|
42215
42451
|
@namespace Ember
|
42216
42452
|
@extends Ember.CoreView
|
@@ -42759,7 +42995,7 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'ember-utils',
|
|
42759
42995
|
enifed("ember/version", ["exports"], function (exports) {
|
42760
42996
|
"use strict";
|
42761
42997
|
|
42762
|
-
exports.default = "2.11.0-beta.
|
42998
|
+
exports.default = "2.11.0-beta.8";
|
42763
42999
|
});
|
42764
43000
|
enifed('internal-test-helpers/apply-mixins', ['exports', 'ember-utils'], function (exports, _emberUtils) {
|
42765
43001
|
'use strict';
|
@@ -52947,9 +53183,11 @@ enifed('glimmer-runtime/lib/syntax/core', ['exports', 'glimmer-runtime/lib/synta
|
|
52947
53183
|
var keys = this.keys;
|
52948
53184
|
var values = this.values;
|
52949
53185
|
|
52950
|
-
|
52951
|
-
|
52952
|
-
|
53186
|
+
var compiledValues = new Array(values.length);
|
53187
|
+
for (var i = 0; i < compiledValues.length; i++) {
|
53188
|
+
compiledValues[i] = values[i].compile(compiler, env, symbolTable);
|
53189
|
+
}
|
53190
|
+
return new _glimmerRuntimeLibCompiledExpressionsArgs.CompiledNamedArgs(keys, compiledValues);
|
52953
53191
|
};
|
52954
53192
|
|
52955
53193
|
return NamedArgs;
|
@@ -53284,9 +53522,20 @@ enifed('glimmer-runtime/lib/upsert', ['exports', 'glimmer-runtime/lib/bounds'],
|
|
53284
53522
|
enifed('glimmer-runtime/lib/utils', ['exports', 'glimmer-util'], function (exports, _glimmerUtil) {
|
53285
53523
|
'use strict';
|
53286
53524
|
|
53287
|
-
var
|
53525
|
+
var HAS_NATIVE_WEAKMAP = (function () {
|
53526
|
+
// detect if `WeakMap` is even present
|
53527
|
+
var hasWeakMap = typeof WeakMap === 'function';
|
53528
|
+
if (!hasWeakMap) {
|
53529
|
+
return false;
|
53530
|
+
}
|
53531
|
+
var instance = new WeakMap();
|
53532
|
+
// use `Object`'s `.toString` directly to prevent us from detecting
|
53533
|
+
// polyfills as native weakmaps
|
53534
|
+
return Object.prototype.toString.call(instance) === '[object WeakMap]';
|
53535
|
+
})();
|
53536
|
+
var EMPTY_ARRAY = HAS_NATIVE_WEAKMAP ? Object.freeze([]) : [];
|
53288
53537
|
exports.EMPTY_ARRAY = EMPTY_ARRAY;
|
53289
|
-
var EMPTY_DICT = Object.freeze(_glimmerUtil.dict());
|
53538
|
+
var EMPTY_DICT = HAS_NATIVE_WEAKMAP ? Object.freeze(_glimmerUtil.dict()) : _glimmerUtil.dict();
|
53290
53539
|
exports.EMPTY_DICT = EMPTY_DICT;
|
53291
53540
|
|
53292
53541
|
var ListRange = (function () {
|